【发布时间】:2014-10-15 14:04:50
【问题描述】:
我想在 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-Macro,没有解决方案。
【问题讨论】:
-
这里有一个关于使用信号和插槽需要什么的解释:stackoverflow.com/questions/22985894/…
-
另请注意,不建议使用线程从 QThread 继承:blog.qt.digia.com/blog/2010/06/17/youre-doing-it-wrong
-
添加Q_OBJECT宏后,必须在Building之前运行qmake
标签: c++ multithreading qt