在添加<< 点击打开链接>>中,学习了怎么为菜单栏添加动作,在类的构造函数中将内容修改为
setWindowTitle(tr("Mian Window"));
openAction = new QAction(QIcon(":/images/ICon"),tr("&Open..."), this);
openAction->setShortcut(QKeySequence::Open);
openAction->setStatusTip(tr(" Open existed file "));
connect(openAction, &QAction::triggered, this, &QTTest::Open);
QMenu *file = menuBar()->addMenu(tr("&File"));
file->addAction(openAction);
QMenu *file2 = menuBar()->addMenu(tr("&HELLO"));
file2->addAction(openAction);
QToolBar *toolBar = addToolBar(tr("&File"));
toolBar->addAction(openAction);
statusBar();
新加了一句:
QMenu *file2 = menuBar()->addMenu(tr("&HELLO"));
file2->addAction(openAction);
使用menuBar()
函数,Qt 为我们创建了一个菜单栏。menuBar()
是QMainWindow
提供的函数,因此你是不会在QWidget
或者QDialog
中找到它的。这个函数会返回窗口的菜单栏,如果没有菜单栏则会新创建一个。这也就解释了,为什么我们可以直接使用menuBar()
函数的返回值,毕竟我们并没有创建一个菜单栏对象啊!原来,这就是menuBar()
为我们创建好并且返回了的。
Qt 中,表示菜单的类是QMenuBar
(你应该已经想到这个名字了)。QMenuBar
代表的是窗口最上方的一条菜单栏。我们使用其addMenu()
函数为其添加菜单。尽管我们只是提供了一个字符串作为参数,但是 Qt 为将其作为新创建的菜单的文本显示出来。至于 & 符号,我们已经解释过,这可以为菜单创建一个快捷键。当我们创建出来了菜单对象时,就可以把QAction
添加到这个菜单上面,也就是addAction()
函数的作用。