• 6255阅读
  • 3回复

[讨论]线程里面如何用到ui->label? [复制链接]

上一主题 下一主题
离线noiplee
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-30
关键词: 界面线程Linux
     我想实现的功能很简单,一个窗口,上面只有一个label。一打开程序,就一直监听串口传来的数据,如果是字符串0001,那么就显示一张图片,其它字符就显示别的图片。感觉好像很简单,但是我QT的多线程不是很熟,我是把多线程类放到dialog里面作为成员,在dialog的构造函数里开始线程。线程的run里面就实现不断监听的功能和显示图片的功能。可是我显示图片要用的ui->label。
    请问线程类该如果才能调用label?请各位帮帮忙。

技監局
离线jdwx

只看该作者 1楼 发表于: 2011-05-30
QThread
{
private:
QString str;
QMutex mutex;
public:
QString resault();
}
resault()
{
用QMutex访问str,返回str。
}
主界面里用定时器定时获取string,更新界面。
方法不怎么先进,但是简单。
如果想更先进,就要发送自定义消息,根据串口数据是否变化更新界面。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线noiplee
只看该作者 2楼 发表于: 2011-05-30
回 1楼(jdwx) 的帖子
我想用线程发送信号到dialog里面
在窗口类的构造函数写connect(thread,SIGNAL(str()),this,SLOT(show()));但是它报错,说

对‘Dialog::connect(newThread&, const char [9], Dialog* const, const char [13])’的调用没有匹配的函数

这样实现可行的吗?
技監局
离线jorneyr

只看该作者 3楼 发表于: 2011-05-30
还是使用信号和糟
快速回复
限100 字节
 
上一个 下一个