gpt4 book ai didi

c++ - 如何将 Qt Action 与函数连接起来

转载 作者:行者123 更新时间:2023-11-30 02:35:11 25 4
gpt4 key购买 nike

我正在尝试制作一个基于 Qt 的 GUI,我想将一个菜单项与一个函数连接起来,我的意思是在单击菜单项后将调用该函数。我这样试过,但它不起作用,点击菜单同上后我看不到我的 cout 打印。我做错了什么?

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
map my_map;

connect(ui->actionSave_Map, SIGNAL(triggered()), this, SLOT(saveMap()));

}

void MainWindow::saveMap(map& my_map)
{
std::cout << "clicked to save" << std::endl;
my_map.saveMap();
}

.h文件

#include <QMainWindow>
#include "map.h"

namespace Ui
{
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void setMapPreferences();
void generateMap();
void drawMap();

public slots:
void saveMap(map& my_map);

private:
Ui::MainWindow *ui;


};

#endif // MAINWINDOW_H

在控制台中点击后出现错误:

Object::connect: No such slot MainWindow::saveMap(map& my_map) in ../map_generator/mainwindow.cpp:19

最佳答案

那样的话,使用lambada就简单了。替换:

connect(ui->actionSave_Map, SIGNAL(triggered()), this, SLOT(saveMap()));

connect(ui->actionSave_Map, &QAction::triggered, [=]() {
saveMap(my_map);
});

之后,确保将 QMAKE_CXXFLAGS += -std=c++0x 添加到您的 .pro 文件

关于c++ - 如何将 Qt Action 与函数连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33875280/

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