我尝试在QT中创建一个线程,可以声明,创建和启动它,但它不会触发Run函数(我可以看到通过在该函数中放置一个断点)
VT.h:
class VT : public QThread
{
public:
void Run();
};
VT.cpp
void VT::Run()
{
..
}
并在main.cpp中:
VT vt;
vt.Start();
// starts ok but no action
我在VT.h中包含其他标头,它们是否阻止?有些不妥。问题
答案 0 :(得分:5)
你的Run函数以大写R开头,QThread的虚拟run()是小写的。编译器认为你的Run()与QThread完全无关。
尝试将您的函数重命名为void VT :: run()。
此外,最好让您的运行功能受到保护,就像在QThread中一样。