当前位置: 代码迷 >> QT开发 >> qt界面刷新时,鼠标腾挪一卡一卡的,求~
  详细解决方案

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

热度:94   发布时间:2016-04-25 04:38:37.0
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。

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