Qt子线程传递数据到主线程简单实例

窗口文件cmainwindow.cpp
CMainWindow
::CMainWindow(QWidget*parent):
QMainWindow(parent),
ui(newUi::CMainWindow)
{
ui->setupUi(this);
....
connect(threadA,SIGNAL(signalUpdateData(QString)),this,SLOT(slotUpdateDate(QString)),Qt::DirectConnection); // 事件同步传递
...
}

voidCMainWindow::slotUpdateDate(QStringtext)
{
qDebug("receivesignalshowMsg");
ui->label->setText(text);
}


线程文件csubthread.cpp:
voidCSubThread::run()
{
qDebug()<<"run";

while(!isStopped)
{
qDebug()<<this->objectName()<<"run...,"<<QTime::currentTime().toString();

emitsignalUpdateData(QTime::currentTime().toString());
qDebug("has post signal");

QThread::msleep(2000);
}
}

输入出:

"ThreadA" run..., "11:23:45"

receive signal showMsg

has post signal

"ThreadA" run..., "11:23:47"

receive signal showMsg

has post signal




posted on 2013-12-25 12:01  trako  阅读(4301)  评论(0编辑  收藏  举报

导航