我开发了一个MyDevice类,它是一个C到C ++的包装器。我想创建一个线程,其中将运行该类中的所有方法。
我已经按如下方式定义了这个类:
class DeviceMngr
{
Q_OBJECT
QThread DeviceThread;
public:
DeviceMngr();
~DeviceMngr();
void OpenDevice();
在main.cpp中,我做了:
DeviceMngr *MyDevice = new DeviceMngr;
我想要的是将MyDevice移动到我认为使用的线程:
MyDevice->moveToThread(&DeviceThread);
之后,我计划创建信号/插槽以将主线程连接到DeviceMngr。
奇怪的是moveToThread不会显示为自动完成。构建不识别移动。
我是否错过了Qthread中的某些内容?
答案 0 :(得分:1)
您的 DeviceMngr 类似乎不是从QObject派生的。 moveToThread是QObject类的实例方法。
因此,为了能够使用moveToThread,请首先从QObject派生您的类。这link可能会有所帮助。