界面控件
QMainWindow
窗口结构
菜单栏和工具栏
#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
resize(600,400);
// 菜单栏 只有一个
QMenuBar *bar = menuBar();
this->setMenuBar(bar);
// 添加菜单
QMenu *fileMenu = bar->addMenu("文件");
QMenu *editMenu = bar->addMenu("编辑");
// 添加菜单项
QAction *newAction = fileMenu->addAction("新建");
// 添加分割线
fileMenu->addSeparator();
QAction *openAction = fileMenu->addAction("打开");
// 工具栏 可以有多个
QToolBar *toolBar = new QToolBar(this);
addToolBar(Qt::RightToolBarArea,toolBar);
// 只允许左右停靠
toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
// 设置浮动
toolBar->setFloatable(false);
// 设置移动(总开关)
toolBar->setMovable(false);
// 工具栏中设置菜单项
toolBar->addAction(newAction);
toolBar->addSeparator();
toolBar->addAction(openAction);
}
MainWindow::~MainWindow()
{
delete toolBar;
}
效果:
状态栏-浮动窗口和中心部件
#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
#include <QLabel>
#include <QStatusBar>
#include <QDockWidget>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
resize(600,400);
// 菜单栏 只有一个
QMenuBar *bar = menuBar();
this->setMenuBar(bar);
// 添加菜单
QMenu *fileMenu = bar->addMenu("文件");
QMenu *editMenu = bar->addMenu("编辑");
// 添加菜单项
QAction *newAction = fileMenu->addAction("新建");
// 添加分割线
fileMenu->addSeparator();
QAction *openAction = fileMenu->addAction("打开");
// 工具栏 可以有多个
QToolBar *toolBar = new QToolBar(this);
addToolBar(Qt::LeftToolBarArea,toolBar);
// 只允许左右停靠
toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
// 设置浮动
toolBar->setFloatable(false);
// 设置移动(总开关)
toolBar->setMovable(false);
// 工具栏中设置菜单项
toolBar->addAction(newAction);
toolBar->addSeparator();
toolBar->addAction(openAction);
// 状态栏 只有一个
QStatusBar *stBar = statusBar();
setStatusBar(stBar);
QLabel *labell = new QLabel("左侧信息");
stBar->addWidget(labell);
QLabel *labell2 = new QLabel("右侧信息");
stBar->addPermanentWidget(labell2); // 从右往左添加
// 铆接部件 浮动窗口 可以有多个
QDockWidget *dockWidget = new QDockWidget("浮动窗口",this);
addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
// 只允许上下停靠
dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
// 核心部件 中心部件
QTextEdit *textEdit = new QTextEdit(this);
setCentralWidget(textEdit);
}
MainWindow::~MainWindow()
{
delete toolBar;
delete labell;
delete labell2;
delete dockWidget;
delete textEdit;
}
资源文件的添加
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this); // 放入到程序的最上侧
// 在新建菜单上添加图片
// ui->actionNew->setIcon(QIcon("D:\资源\图片\1.png"));
// 添加文件:res.qrc
// 使用:: + 前缀名 + 文件名
ui->actionNew->setIcon(QIcon(":/1.png"));
}
MainWindow::~MainWindow()
{
delete ui;
}
添加res文件:
添加资源: