QMenuBar 要添加在 QMainWindow 窗口中,同样我们要继承一份 QMainWindow 类,然后在派生的类中调用 menuBar() 来创建菜单栏(MenuBar),在菜单栏中你需要创建一个主菜单(Menu),再次在主菜单中创建子菜单(Action),这样我们就构建了一个可使用的菜单。
而工具栏一般是与菜单栏配合使用的,菜单栏有的功能在 ToolBar 下也可能会存在一份相同的功能,这是老的程序界面设计的一种风格,下面代码中主要编写了如何创建菜单、给菜单增加处理函数和快捷键功能,并用菜单来初始化一个 ToolBar。
#include "cmainwindow.h" #include <QMenuBar> #include <QDebug> #include <QToolBar> CMainWindow::CMainWindow(QWidget *parent) : QMainWindow(parent) { // 创建一个菜单栏 QMenuBar* pMenuBar = menuBar(); // 给菜单栏增加一个主菜单 File QMenu* menuFile = pMenuBar->addMenu("&File"); /* * 给 File 下增加子菜单 * 第一个参数:图标 * 第二个参数:显示文字 * 第三个参数:由谁(哪个对象)来处理他的功能 * 第四个参数:处理的槽函数(后面再介绍) * 第五个参数:快捷键 */ QAction* newAction = menuFile->addAction(QIcon(QPixmap("d:\\qt-logo.png")), "&New", this, SLOT(slotNew()), QKeySequence(tr("CTRL+N"))); menuFile->addAction("&Open"); menuFile->addAction("&Save"); // 插入分隔符 menuFile->addSeparator(); menuFile->addAction("&Exit"); // 给菜单栏增加一个主菜单 File QMenu* menuHelp = pMenuBar->addMenu("&Help"); menuHelp->addAction("&About"); // 添加一个工具栏 QToolBar* toolBar = addToolBar("toolBar"); // 用工具栏的返回值来初始化工具栏子项 toolBar->addAction(newAction); } void CMainWindow::slotNew() { qDebug() << "slotNew..."; }