QMainWindow 是应用程序的主窗体,拥有自已的layout,可以加入QToolBars, QDockWidgets, QMenuBar 和QStatusBar
其布局有一个"中心区域",此区域可由任何widget 占领。
注意:QMainWindow 必须有"central widget",既便仅仅用于占位。
设置"central widget":setCentralWidget()。central widget 通常是标准Qt widget 如QTextEdit 和QGraphicsView
Creating Main Window Components
主窗体分单文档界面(SDI)和多文档界面(MDI)。如果使用QMdiArea 作为central widget,则应用程序就是MDI 的。
Creating Menus
QMainWindow 的QMenuBar 持有许多QMenu,QActions 被添加进QMenu,显示为一个菜单项。
要创建菜单栏调用menuBar(), 其返回一个QMenuBar,添加菜单用QMenuBar::addMenu()
QMainWindow 附带有一个默认的menu bar,可以用setMenuBar() 替代之。
如要实现定制的menu bar(比如说,不使用QMenuBar),调用setMenuWidget()。
void MainWindow::createMenus()
{
fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(newAct);
fileMenu->addAction(openAct);
fileMenu->addAction(saveAct);
...
}
createPopupMenu() 函数创建弹出菜单,当主窗体收到上下文菜单事件。默认实现是从dock widgets 和toolbars 产生菜单,其中含有checkable actions