• 5592阅读
  • 7回复

[提问]在另一个线程中更改状态栏 [复制链接]

上一主题 下一主题
离线shorerider
 
只看楼主 倒序阅读 楼主  发表于: 2011-06-30
大家好,我的主线程中使用了一个MainWindow,然后用pthread_create创建了一个新线程,现在要在这个新线程中更改状态栏,请问应该怎么做。(我弄了好久,一直在报错……)
离线shorerider
只看该作者 1楼 发表于: 2011-06-30
我试过用信号和槽的,但是用pthread_create创建线程的时候新线程工作的函数必须是类静态方法,在静态方法中用emit发消息时要调用非静态方法,于是报错了……
离线jdwx

只看该作者 2楼 发表于: 2011-06-30
回 1楼(shorerider) 的帖子
我记得用QThread是public一个类,重新实现run(),用start()启动线程。
好像记得connect有用于多线程的办法,看看connect的说明,第五个参数。
我没测试过,记得有看过。
包好用的方法是发消息。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线shiroki

只看该作者 3楼 发表于: 2011-06-30
既然是qt程序当然用qthread方便阿, 你用系统的pthread麻烦事多了, 改吧
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线shorerider
只看该作者 4楼 发表于: 2011-06-30
回 3楼(shiroki) 的帖子
唉,在Qt中用系统调用就是自找麻烦,算了,再看看有没有办法,没有的话只好改了……谢谢两位了。
离线cspp

只看该作者 5楼 发表于: 2011-07-01
你吧状态栏的指针传进去
离线shorerider
只看该作者 6楼 发表于: 2011-07-02
回 5楼(cspp) 的帖子
谢谢你的回复,但是试过了,没用的,在工作线程中不能修改GUI,这是我后来才发现的。
离线dbzhang800

只看该作者 7楼 发表于: 2011-07-02
Re:回 5楼(cspp) 的帖子
引用第6楼shorerider于2011-07-02 09:38发表的 回 5楼(cspp) 的帖子 :
谢谢你的回复,但是试过了,没用的,在工作线程中不能修改GUI,这是我后来才发现的。

你可以考虑把你的测试程序发出来(保持完整的情况下,代码量在100-200行应该没问题吧)

不清楚你直接用pthread的意图是什么,至少可以肯定一点,你用QThread可以做到的,用pthread肯定可以(顶多你把QThread所做的再做一下)。
快速回复
限100 字节
 
上一个 下一个