gpt4 book ai didi

qt - 如何仅在单击 QMenu 对象时执行操作?

转载 作者:行者123 更新时间:2023-12-03 03:45:41 25 4
gpt4 key购买 nike

这是 GUI 的快照。我想仅通过单击 QMenu 对象帮助来执行简单的操作。这个QMenu对象没有任何子菜单。 Perform action when Help menu is clicked

请告诉我如何在仅单击 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...

最佳答案

我会尝试执行以下操作:

void MainWindow::createActions()
{
[..]
connect(ui->menuHelp, SIGNAL(aboutToShow()), this, SLOT(help()));
}

void MainWindow::help()
{
qDebug()<<"inside help qdialog";
}

关于qt - 如何仅在单击 QMenu 对象时执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22197496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com