我嘗試在線程對象調用插槽時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