C++ 使用Qt4的简单菜单栏
我正在尝试用Qt4.6制作一个简单的GUI。我制作了一个代表菜单栏的分离类:C++ 使用Qt4的简单菜单栏,c++,qt,qt4,C++,Qt,Qt4,我正在尝试用Qt4.6制作一个简单的GUI。我制作了一个代表菜单栏的分离类: MenuBar::MenuBar() { aboutAct = new QAction(tr("&About QT"), this); aboutAct->setStatusTip(tr("Show the application's About box")); connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
MenuBar::MenuBar()
{
aboutAct = new QAction(tr("&About QT"), this);
aboutAct->setStatusTip(tr("Show the application's About box"));
connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
quitAct = new QAction(tr("&Quit"),this);
quitAct->setStatusTip(tr("Exit to the program"));
//connect(quitAct, SIGNAL(triggered()), &QApp, SLOT(quit()));
menuFile = new QMenu("File");
menuFile->addAction(quitAct);
menuLinks = new QMenu("Links");
menuAbout = new QMenu("Info");
menuAbout->addAction(aboutAct);
addMenu(menuFile);
addMenu(menuLinks);
addMenu(menuAbout);
}
我无法将quitAct的信号连接到主应用程序的quit槽,可能是因为它在MenuBar类中不可见
//connect(quitAct, SIGNAL(triggered()), &QApp, SLOT(quit()));
我怎么做
QApplication
类的或获取指向应用程序实例的指针。请注意,这是一个指针,因此将qApp
传递到connect()
,而不是&qApp
您有输入错误。)
在:connect(quitAct,信号(triggered()),&QApp,插槽(quit())代码>
变量的名称是qApp,而不是qApp。除此之外,巴尔帕说的都是。因此,要么:
connect(quitAct,信号(triggered()),qApp,SLOT(quit())代码>
或
connect(quitAct,SIGNAL(triggered()),QApplication::instance(),SLOT(quit())代码>所有方法都非常“脏”,而不是Qt风格。你没有发现他的代码中有错误