本文将给你详细,讲述菜单的创建过程,包括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