当前位置: 技术问答>linux和unix
关于QT界面响应问题
来源: 互联网 发布时间:2016-06-19
本文导语: 最近发现一个现象:在网络传输过程中出现QT界面不能响应的问题, 出现这种情况的状态:第一种情况:网络传输的数据量很小,1秒几十个字节 第二种情况:让刻度盘快速旋转(不是用QT做的...
最近发现一个现象:在网络传输过程中出现QT界面不能响应的问题,
出现这种情况的状态:第一种情况:网络传输的数据量很小,1秒几十个字节
第二种情况:让刻度盘快速旋转(不是用QT做的),也会出现这种现象
出现的时间:不确定
现象:比如切换一个量程,这个值是被更改了,整个界面显示没有变化,而且不能响应不会自动恢复,按键鼠标都正常,不是用QT做的也正常,只要点击用QT做的菜单,界面恢复正常
请问各位大虾:这是什么原因,是因为多线程吗? 如何解决这个问题
刚查了下,qApp->processEvents();不知道行不行,先去试下~~
出现这种情况的状态:第一种情况:网络传输的数据量很小,1秒几十个字节
第二种情况:让刻度盘快速旋转(不是用QT做的),也会出现这种现象
出现的时间:不确定
现象:比如切换一个量程,这个值是被更改了,整个界面显示没有变化,而且不能响应不会自动恢复,按键鼠标都正常,不是用QT做的也正常,只要点击用QT做的菜单,界面恢复正常
请问各位大虾:这是什么原因,是因为多线程吗? 如何解决这个问题
刚查了下,qApp->processEvents();不知道行不行,先去试下~~
|
应该是你用了多线程的关系。
你的主界面线程没有阻塞过吧。
只要主线程没有阻塞应该不会出现这种情况吧。
你的主界面线程没有阻塞过吧。
只要主线程没有阻塞应该不会出现这种情况吧。
|
可以再fork一个线程,
也可以用QProcess,很好用的。
单线程容易造成不响应的情况
也可以用QProcess,很好用的。
单线程容易造成不响应的情况
|
QThread::run不能被重复启用(已经是run状态不能再start),不然可能造成界面假死。
只能想到这些咯。
|
不好意思,记错了,应该是QThread。
|
可能和Qt的消息传输机制有关。
不知道是不是Singal和Slot机制把它搞成这个样子了。
不知道是不是Singal和Slot机制把它搞成这个样子了。
|
用异步的方式来处理