QThread没有开始

pau*_*ons 0 c++ qt

我尝试在QT中创建一个线程,可以声明,创建和启动它,但它不会触发Run函数(我可以看到通过在该函数中放置一个断点)

VT.h:

class VT : public QThread
{

 public:
    void Run();
};
Run Code Online (Sandbox Code Playgroud)

VT.cpp

void VT::Run()
{
..
}
Run Code Online (Sandbox Code Playgroud)

并在main.cpp中:

VT vt;
vt.Start();
// starts ok but no action
Run Code Online (Sandbox Code Playgroud)

我在VT.h中包含其他标题,它们是否阻止?有些不妥.问题?

小智 5

你的Run函数以大写R开头,QThread的虚拟run()是小写的.编译器认为你的Run()与QThread完全无关.

尝试将您的函数重命名为void VT :: run().

此外,最好让您的运行功能受到保护,就像在QThread中一样.