我尝试在线程对象调用插槽时threas开始,但得到这个错误:Qt对象::连接:没有这样的插槽信号主题插槽
Object::connect: No such slot Worker::doWork(pFoo)
线程执行代码:
// main class
m_WorkerThread = new QThread();
FooStack* pfooStack = InternalStorageManager::getInstance()->getStack();
m_Worker = new Worker();
bool done = connect(m_WorkerThread,
SIGNAL(started()),
m_Worker,
SLOT(doWork(pfooStack)));
m_Worker->moveToThread(m_WorkerThread);
m_WorkerThread->start();
// class Worker
// cpp imple
void Worker::doWork(FooStack *& rp_urlsStack)
{
}
// header
class Worker : public QObject
{
Q_OBJECT
public :
Worker();
~Worker();
public slots:
void doWork(FooStack *&);
};
我想避免保留pFoo的Worker对象中的成员参考指针 – user63898
然后在您的主类中创建一个不带参数并将其连接到工作线程的'start()'信号的专用插槽。在您的专用槽插槽内调用'm_WorkerThread-> doWork((pfooStack))'。 – cmannett85
即时在这里困惑你是什么意思? ..好吧gotyou ..线程安全吗? – user63898