本文将给你详细,讲述菜单的创建过程,包括QAction的创建和链接,QMenu的创建和链接QAction。
一、Window
在将这些之前,我们还是要知道QMainWindow的窗体,是怎么样的!
我们可以看到,MenuBar,在最上面的位置,我们添加的菜单就在窗体的那个位置。
二、创建过程(编写代码)
1、创建一个工程,添加一个类,MyWindow,添加一个源文件main.cpp。
添加头文件:
#include <QAction>
#include <QMenu> #include <QMenuBar>添加两个QAction:
private:
QAction *addAct; QAction *exitAct; 添加一个公共函数: public: void createActions(); 在mywindow.cpp构造函数里添加: createActions(); 在相应的函数创建QAction: addAct = new QAction(tr("Add"),this); exitAct = new QAction(tr("Exit"),this); 以上,我们实现了QAction的创建工作。 接着我们实现QAction的链接工作: 在mywindow.h文件中,添加两个共有槽函数: public slots: void slotAdd(); void slotExit(); 在mywindow.cpp文件函数中,定义这两个函数,这里我们把它们都设置为空,因为我们不用实现什么功能。 void MyWindow::slotAdd() { } void MyWindow::slotExit() { } 在creatActions()函数中,添加两行代码,实现QAction的链接: connect( addAct ,SIGNAL(triggered()), this ,SLOT(slotAdd())); connect(exitAct,SIGNAL(triggered()),this,SLOT(slotExit())); 最后我们实现菜单的创建和与QAction 的链接。 在mywindow.h文件中,我们添加共有函数: public: void createMenus(); 在mywindow.cpp文件中,我们定义这个函数: void MyWindow::createMenus() { QMenu *fileMenu = menuBar()->addMenu(tr("File")); fileMenu->addAction(addAct); fileMenu->addSeparator(); fileMenu->addAction(addAct); menuBar()->addSeparator(); QMenu *exitMenu = menuBar()->addMenu(tr("exit")); exitMenu->addAction(exitAct); } 在构造函数里,添加一行代码: createMenus(); 这样,我们就完成了整个类的定义。 接着,我们在main函数里,添加代码如下: #include <QApplication> #include "mywindow.h" int main(int argc,char * argv[]) { QApplication app(argc,argv); MyWindow w; w.show(); return app.exec(); } 以上,这个工程便,完成了。 综上所述,我们一般创建菜单的过程如下: 1、QAction的创建和链接2、QMenu的创建,和与QAction的链接
转自:http://blog.sina.com.cn/s/blog_825442790100y74h.html
