• 7947阅读
  • 4回复

[提问]Qlabel->setText 不更新 [复制链接]

上一主题 下一主题
离线sujingmeng
 
只看楼主 倒序阅读 楼主  发表于: 2011-07-16
我遇到这样一个问题

labelLamp->setText(QApplication::tr("没找到"));

如果 labelLamp 所在的应用程序是 active window 的话,更新很好。
但是,如果它被切换掉之后,就不更新了。

运行环境是 windows xp, qt 4.7.3, mingw 编译

试过
    labelLamp->repaint();
    labelLamp->update();
好像都不行。

有前辈遇到过类似问题吗?



离线XChinux

只看该作者 1楼 发表于: 2011-07-17
问题描述不清。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线sujingmeng
只看该作者 2楼 发表于: 2011-07-18
重新写一下,说清楚点。

运行环境是 windows xp, qt 4.7.3, mingw 编译。

我的 mainWindow 里面有个 lableLamp.
这个 label 里面的信息在 mainWindow 的一个 SLOT 当中被修改,如下:
labelLamp->setText(QApplication::tr("没找到"));

这个 SLOT 被连接到另外一个线程(工作线程)的 SIGNAL 上面。

这个工作线程开始工作之后,会不断的给 SIGNAL 出来,大概每秒一个。
labelLamp 要根据 SIGNAL 给出的数据更新,比如“找到了”或者“没找到”。

当我的这个 mainWindow 在 XP 中处于活动窗口的时候(窗口 Title 是深蓝色),上述机制运行得很好。
但是,如果这时候,这个窗口不是活动窗口了,这个 lableLamp 就不更新了。
我可以肯定,不管窗口是否活动,这个 SLOT 的函数是确实被调用了的(我向硬盘的日志文件输出日志)。
但这时候,lable 的显示确实就不更新了。

试过
    labelLamp->repaint();
    labelLamp->update();
都没有解决。

请前辈帮助,谢谢!!


离线sujingmeng
只看该作者 3楼 发表于: 2011-07-21
没人理啊,自己顶一下。
离线jdwx

只看该作者 4楼 发表于: 2011-07-21
回 3楼(sujingmeng) 的帖子
发一个以前给别人改的多线程例子。我试了一下,没你说的问题。
附件: test0.rar (6 K) 下载次数:13
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个