• 5332阅读
  • 3回复

[提问]如何在线程中调用修改主窗口的控件!!! [复制链接]

上一主题 下一主题
离线gjf123
 

只看楼主 倒序阅读 楼主  发表于: 2011-05-12
各位大侠:
小弟在widget.ui中拖了一个label,在widget.cpp的构造函数中,将其Text值改为YES(ui->label->setText(tr("YES"));)。同时在widget.cpp的构造函数中启动一个线程,线程的定义在my_thread.cpp,my_thread.h。但我想在my_thread.cpp中的run函数中对label进行修改,但不知道如何将ui->label调出来。 小弟C++基础很差,请大侠详细解释下,感激不尽!
代码见附件
[ 此帖被gjf123在2011-05-12 14:37重新编辑 ]
离线lxmlu

只看该作者 1楼 发表于: 2011-05-12
构造函数里把窗体对象的指针传过去
离线cutemmll
只看该作者 2楼 发表于: 2011-05-12
在你的自定义线程中调用下面的函数发一个事件出去
  1. void QCoreApplication::postEvent ( QObject * receiver, QEvent * event ) [static]

这个事件是继承自QEvent,并给它指定一个事件类型type
然后重新实现你的widget类的
  1. void QObject::customEvent ( QEvent * event )

在这个函数中判断事件类型是否为type,然后再进行操作。

基本上就能完成你的要求,如果在这个过程中有不明白的地方,请你自己去翻阅文档。
c------------enjoy qt & enjoy life-----------++
离线83888788
只看该作者 3楼 发表于: 2011-05-12
线程中无法对gui进行控制
利用信号得
[ 此帖被83888788在2011-05-12 14:55重新编辑 ]
快速回复
限100 字节
 
上一个 下一个