首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

qt界面刷新时,鼠标腾挪一卡一卡的,求~

2012-07-30 
qt界面刷新时,鼠标移动一卡一卡的,急求~~~qt界面里面用了个定时器,定时1s,定时时间到时,把数据写到界面上

qt界面刷新时,鼠标移动一卡一卡的,急求~~~
qt界面里面用了个定时器,定时1s,定时时间到时,把数据写到界面上的label里面,结果发现个问题,在运行起来后,我晃动鼠标,发现定时器时间一到,数据刷新时,鼠标的移动就会出现卡顿一下的现象,哪位大神能够帮忙解决一下啊??找了好几天原因了,发现就是data_right[i]->setNum(current_data[j].currentvalue);的问题,我把这句注释掉,定时时间到也不卡了,这句话中data_right[i]是Qlabel类定义的,i<8,current_data[j].currentvalue是一个float型的数据,他的值是从另一个线程中定时从共享内存中读入的

[解决办法]
数据加载的部分放到线程里去,你的数据量如果和大的情况下,是有可能会把界面卡住的,定时器也是在主线程中运行。尽量少用float型数据去运算,速度太慢了。和int基本上不是一个数量级别的。
[解决办法]
一秒刷新一次,就是几个float,不会卡成这样。
鼠标都不动了,鼠标是系统的,说明系统都被卡住了。
估计还是读取数据那里卡住了。
[解决办法]
就8个QLabel能卡成这样吗?
建议将数据换成固定的数据如(1.2345),不从另外的线程获取。进行测试。


显示100个jpeg到是要卡一会,大概3S。
[解决办法]

探讨
引用:

数据加载的部分放到线程里去,你的数据量如果和大的情况下,是有可能会把界面卡住的,定时器也是在主线程中运行。尽量少用float型数据去运算,速度太慢了。和int基本上不是一个数量级别的。

这个发现不是数据运算的问题,把data_right[i]->setNum(current_data[j].currentvalue);换成data_right[i]->setNu……

[解决办法]
探讨

引用:

就8个QLabel能卡成这样吗?
建议将数据换成固定的数据如(1.2345),不从另外的线程获取。进行测试。


显示100个jpeg到是要卡一会,大概3S。

换成数据不卡的,这个卡其实是很快的,只是鼠标移动的轨迹看不到了,就感觉一下跳过去了

热点排行