QMainWindow包括一个菜单栏,多个工具栏,多个锚接部件,一个状态栏,一个中心部件组成。
菜单栏
菜单栏是一个包含很多菜单的部件,其中菜单又是一系列命令的列表,命令用QAction表示,菜单栏在#include< QMenuBar>中定义,菜单在#include< QMenu>中定义。
private:
QMenu *fileMenu;
QMenu *editMenu;
QMenu *buideMenu;
QAction *NewFileAction;
QAction *OpenFileAction;
fileMenu=menuBar()->addMenu(tr(“文件”));
NewFileAction=new QAction(tr(“新建”),this);
NewFileAction->setShortcut(tr(“Ctrl+N”));
NewFileAction->setStatusTip(tr(“新建文件”));
OpenFileAction=new QAction(tr(“打开”),this);
OpenFileAction->setShortcut(tr(“Ctrl+Q”));
OpenFileAction->setStatusTip(tr(“打开一个文件”));
fileMenu->addAction(NewFileAction);
fileMenu->addAction(OpenFileAction);
editMenu=menuBar()->addMenu(tr(“编辑”));
buideMenu=menuBar()->addMenu(tr(“构建”));
使用menuBar()->addMeun()添加菜单,使用addAction()向菜单中添加命令
工具栏
工具栏由一些经常使用的Action组成,工具栏可以停靠在主窗口的任意位置,一个主窗口可以包括多个工具栏。
QToolBar *fileTool;
fileTool=addToolBar("Fiel");
fileTool->addAction(openFileAction);
fileTool->setAllowedAreas(Qt::TopToolBarArea|Qt::LeftToolBarArea);
fileTool->setMovable(false);
setAllowedAreas设置工具条可以停靠的范围,包括
Qt::LeftToolBarArea
Qt::RightToolBarArea
Qt::TopToolBarArea
Qt::BottomToolBarArea
Qt::AllToolBarAreas
setMovable设置工具条可移动性。
锚接部件
锚接部件是一个包含其他窗体部件的部件,位于工具栏区的内部,可以作为一个窗口自由地浮动在主窗口上,也可以停靠在主窗口的不同方向,一个主窗口可以包含多个锚接部件。例如vs2017的类视图,属性管理器等都是锚接部件。
工具栏和锚接部件可以通过鼠标右键或QMainWindow::CreatePopupMenu()控制显隐。