请问各位,
我现在有一个QHomeWidget,点击其上一个按钮,会调用一个功能函数 fun()。
在 fun()中去实现连接功能,连接成功与否需要等待一段时间才知道。这段时间我的程序界面无法操作。
这里我想使用多线程的方式,去解决 “等待时无法操作的问题”。
使用了以下的类
class MyWorker : public QObject
{
Q_OBJECT
public:
MyWorker();
public slots:
void slot1(QWidget*);
};
void slot1(QWidget*)
{
fun (QHomeWidget中的某一子Widget);
}
在QHomeWidget中,有
m_worker = new MyWorker;
QThread* theThread = new QThread(this);
m_worker->moveToThread(theThread);
connect(this,SIGNAL( signal1(QWidget*)), m_worker, SLOT(slot1(QWidget*)));
theThread->start();
但是运行时,走到 MyWorker::slot1() 中的 fun (QHomeWidget中的某一子Widget);这一步就会出错,无法向子线程传递QObject!!!
请问我应当如何处理该问题呢?
或者我应该如何实现最初的需求呢?
谢谢。