gpt4 book ai didi

c++ - QT 中未定义的信号引用

转载 作者:太空狗 更新时间:2023-10-29 19:40:26 27 4
gpt4 key购买 nike

我想在 Qt 的单独文件中创建一个类,然后在我的主文件中使用这个类(背景:辅助线程更新 GUI)。因此我写了 ReadDPC.h-file:

class ReadDPC: public QThread
{
//First edit:
Q_OBJECT
//End of first edit
public:
void run();
signals:
void currentCount(int);
};

在我的 ReadDPC.cpp 文件中:

void ReadDPC::run()
{
while(1)
{
usleep(50);
int counts = read_DPC();
emit currentCount(counts);
}
}

read_DPC() 是一个返回 int 值的函数,该值也放在 cpp 文件中。
但是当我想编译它时,我得到错误 undefined reference to ReadDPC::currentCount(int)。为什么?我该如何解决这个问题?

编辑:添加了Q_Object-宏,无解。

最佳答案

将 Q_OBJECT 宏添加到您的子类并运行 qmake。

这个宏允许你使用信号和槽机制。没有这个宏 moc 就无法创建您的信号,因此您会收到错误信息,提示您的信号不存在。

代码应该是:

class ReadDPC: public QThread {
Q_OBJECT

请注意,当您使用新的信号和槽语法时,您可能会遇到忘记添加此宏的编译时错误。如果您感兴趣,请在此处阅读更多内容:http://qt-project.org/wiki/New_Signal_Slot_Syntax

关于c++ - QT 中未定义的信号引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26384577/

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