下面是GUI的快照。我只想通過單擊QMenu
對象幫助來執行簡單的操作。這個QMenu
對象沒有任何子菜單。 如何僅對點擊QMenu對象執行操作?
能否請你告訴我如何只有QMenu
點擊 時,這裏就是我試圖完成的動作,但我有一個空的輸出。
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include <QSignalMapper>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
void createActions();
QSignalMapper *pSignalMapper;
private slots:
void help();
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
createActions();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::createActions()
{
pSignalMapper = new QSignalMapper(this);
connect(ui->menuHelp, SIGNAL(triggered(QAction*)), this, SLOT(help()));
}
void MainWindow::help()
{
qDebug()<<"inside help qdialog";
}
main.cpp中
#include "mainwindow.h"
#include <QApplication>
#include <ui_mainwindow.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
輸出時我點擊幫助QMenu
,絕對沒有:
Starting E:\Qt2\modules\guiPrototype2\build-guiPrototype2-Desktop_Qt_5_2_0_MSVC2010_32bit-Debug\debug\guiPrototype2.exe...
好吧,我想你的連接()沒有成功,請問你可以檢查連接的返回值嗎?如果它是假的,那麼連接不起作用。另外,我認爲'aboutThoShow()'更合適http://qt-project.org/doc/qt-5.0/qtwidgets/qmenu.html#aboutToShow – Najzero