• 5761阅读
  • 2回复

线程 [复制链接]

上一主题 下一主题
离线sakiola
 
只看楼主 倒序阅读 楼主  发表于: 2009-07-21
这帖子一开始让我放QTE那边去了 放的有点不是地方 现在重发......

初识QT  尝试自己练习 请达人指点

我想做一个类似手机的界面 上边下边各一个类似工具栏的地方 中间是主显示区域

问题:要是我在工具栏相应位置刷上新时间等一些随机信息的时候

      1.会不会因为我做出来的主显示区域是模态对话框 而造成修改成功却不能立即刷新?

      2.这样的话,是不是要把创建上边和下边的工具栏用QT线程做?

      3.能指点下:创建工具栏应该在run里吗?创建线程应该放在main里吗?

因为有被提示 It 's not safe to use pixmaps outside the GUI thread 而我用线程创建的小工具条也在出来之前就被kill掉了 所以现在很迷茫 不知道是不是线程创建的位置有讲究?

之前的尝试是这样的

我先创建了主界面

然后再主界面的构造函数中 创建并启动了线程

而线程的run函数是用来创建上边的工具栏的

在这种情况下报错如下:

QThread : Destroyed while thread is still running
QPixmap: It is not safe to use pixmap outside the GUI thread

是我弄的顺序还是创建位置上有问题吗?

后来我把线程创建放到main的exec之前了 还是提示QPixmap: It is not safe to use pixmap outside the GUI thread 谁能帮我一一解答下?

在那边的帖子有人建议我 让我用多继承解决 可是本人刚刚接触C++和QT 很是头大 不知道为什么要用多继承 达人帮帮忙
[ 此帖被sakiola在2009-07-21 11:45重新编辑 ]
NB才是王道
离线shiroki

只看该作者 1楼 发表于: 2009-07-21
qt的子线程里不能写任何和界面相关的代码,比如创建空间、绘图, 包括和qpixmap相关的操作都不能写。。。
--
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
离线sakiola
只看该作者 2楼 发表于: 2009-07-21
引用第1楼shiroki于2009-07-21 13:47发表的  :
qt的子线程里不能写任何和界面相关的代码,比如创建空间、绘图, 包括和qpixmap相关的操作都不能写。。。


那我怎么创建那种不受弹出来的模态对话框影响的界面呢?

就是可以刷各种随机信息的那种~

还是说 QT天生就不怕那种影响?
[ 此帖被sakiola在2009-07-21 15:23重新编辑 ]
NB才是王道
快速回复
限100 字节
 
上一个 下一个