gpt4 book ai didi

c++ - Qt 连接找不到插槽

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

我正在尝试使用 QObject::connect 在线程完成后开始一个插槽。

我的类定义是:

class Test : public QWidget
{
public:
Test(QWidget *parent=0);
private slots:
void do_work();
void show_box();
private:
QFuture<void> work_thread;
QFutureWatcher<void> watcher;
};

我尝试了以下代码:

connect(&watcher, SIGNAL(finished()), this, SLOT(show_box()));

但是当我运行编译后的二进制文件时,它说:

QObject::connect: No such slot QWidget::show_box()

我也试过

QFutureWatcher<void> *watcher;
connect(watcher, &QFutureWatcher<void>::finished, this, &Test::show_box);

但它会因段错误而退出。

最佳答案

Test 中缺少 Q_OBJECT

What does the Q_OBJECT macro do? Why do all Qt objects need this macro?

如果您没有它,信号/插槽将无法工作。

class Test : public QWidget{
Q_OBJECT
public:
Test(QWidget *parent=0);
private slots:
void do_work();
void show_box();
private:
QFuture<void> work_thread;
QFutureWatcher<void> watcher;
};

关于c++ - Qt 连接找不到插槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34124487/

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