我有以下代码设置 -
在文件 testthread.h
中class test_thread :public QThread
{
Q_OBJECT
public:
void start();
};
在cpp文件中
test_thread *t = new test_thread;
t->start();
执行上述代码时,我收到错误 -
error: undefined reference to test_thread::start()
我不明白出了什么问题。调用QThread对象的start()方法不显示任何错误,但是当我将QThread子类化时,它确实存在。对此有任何帮助或建议都很棒!
谢谢:)
答案 0 :(得分:2)
您需要从头文件中删除void start();
。如果源文件中存在start
实现,则还需要将其删除。 start
方法不应该重新实现。
您可能希望重新实现run
虚拟方法。如果是,请将void run()
添加到标头中,并在源文件中添加适当的test_thread::run() { ... }
实现。
请注意,在大多数情况下,QThread
不应该是子类。