mainwindow是用来做应用界面的,有菜单栏,工具栏,浮动窗口,中心部件以及状态栏这几个部分组成。
举个例子:


1.菜单栏:
cpp
#include <QMenuBar>
QMenuBar *menubar = new QMenuBar(this);
setMenuBar(menubar);//设置到当前窗口
为菜单栏设置菜单:
cpp
QMenu *file = menubar->addMenu("文件(&F)");
//为菜单栏添加一个菜单,名字叫"文件",调用快捷键是alt+F
为菜单设置动作:
cpp
fill->addAction("打开文件(&O)");
2.设置工具栏:
cpp
QToolBar *toolbar = new QToolBar(this);
addToolBar(toolbar);//将工具栏设置到窗口
为工具栏添加动作:
cpp
toolbar->addAction("工具");
3.状态栏
设置状态栏
cpp
#include <QStatusBar>
QStatusBar *stbar = new QStatusBar(this);
setStatusBar(stbar);//状态栏也是只有一个
因为是状态栏,是栏,不能直接设置文本,但可以通过添加组件的方式来显示文本
cpp
#include <QStatusBar>
#include <QLabel>
//StatusBar
//设置状态栏
QStatusBar *stbar = new QStatusBar(this);
setStatusBar(stbar);//状态栏也是只有一个
QLabel *label = new QLabel(this);
label->setText("状态栏");
stbar->addWidget(label);//因为是状态栏,是栏,不能直接设置文本,但可以通过添加组件的方式来显示文本
4.浮动窗口
cpp
#include <QDockWidget>
//Dock Widget
//设置浮动窗口
QDockWidget *dock = new QDockWidget("小窗口",this);
//设置浮动窗口的同时可以设置名称;
addDockWidget(Qt::LeftDockWidgetArea, dock);//因为浮动窗口可以有多个,所以应该用add,浮动窗口的位置是相对于中心部件的
5.设置中心部件
一般的中心部件都是文本编辑器
cpp
#include <QTextEdit>
//central widget
//一般的中心部件都是文本编辑器
QTextEdit *edit = new QTextEdit(this);
setCentralWidget(edit);//中心部件只有一个,因此应该用set
6.为组件设置图片
如何将图片加入到工程文件,使得该工程文件调用图片不受绝对目录的影响。
1)首先创建工程Qt源文件


点击Open in Editor

填写前缀后增加文件到工程目录上


2)引用Qt源文件中的资源
cpp
ui->setupUi(this);
ui->actionnew->setIcon(QIcon(":/Image/images/new.png"));
ui->actionclose->setIcon(QIcon(":/Image/images/close.png"));
ui->actionopen->setIcon(QIcon(":/Image/images/open.png"));
注意引用格式":/.../.../",这个双引号不要忘了,否则引用资源不成功。
actionnew等都是菜单下的action模块
这样就可以做到在工程文件中引用资源,而不是依靠绝对路径。