• 14511阅读
  • 12回复

移动鼠标,QT程序占用CPU过高。。。急 [复制链接]

上一主题 下一主题
离线zcspl
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-07
一个200MB的CPU,在嵌入式板子上运行一个只有一个窗口界面的QT程序,移动鼠标或快速移动鼠标,CPU占用最高达60%。为什么CPU占用会那么高?有人说是QT的问题。但是QT对于嵌入式支持应该很好的,应该不会有这么严重的问题吧。望高人指点,急啊。。。。。。。。希望能给出解决办法或者意见。
离线duduqq

只看该作者 1楼 发表于: 2009-08-07
是否有在鼠标移动时调用了repaint()
调试代码,把代码注释了再一点一点加进去看看到底加到哪里会出现这样的问题。
离线nmiirq

只看该作者 2楼 发表于: 2009-08-08
看看你的mouse move时有什么操作吧!
离线beajisong

只看该作者 3楼 发表于: 2009-08-08
这个就是这样
S3C2410啊之类的ARM9 200MHZ CPU就是跑不动QT4
在这些芯片上不想桌面系统,鼠标是没有硬件支持的
QT用raiser引擎画-擦-画来表现鼠标指针
没招,QT比minigui要慢,不太适合低端U
离线zcspl
只看该作者 4楼 发表于: 2009-08-10
我用的是EP9307,ARMy9.0,200MB的CPU。程序就是一个很简单的窗口,没有任何控件,没有重载其他任何函数。只是简单的移动鼠标。
beajisong的意见我看了,我们用的是QT4,嵌入式板子是外包公司做的,他们的意思也是说这个是QT的原因,要想解决除非改QT源码。但是我们之前是评估了QT在嵌入式方面的优越性才决定使用的,即使200MB的CPU也不至于跑的那么差吧?采用200MB的CPU也是从成本角度考虑。是否真的没有在不改QT源码的基础上有解决方法呢?
离线cnnbboy

只看该作者 5楼 发表于: 2009-08-10
去掉显示鼠标可能会好点
离线zcspl
只看该作者 6楼 发表于: 2009-08-11
我现在想把鼠标隐藏,使用代码:QApplication::setOverrideCursor( QCursor(Qt::BlankCursor));在x11下在窗口区是可以隐藏的,但是放到板子上后有时候能隐藏,但移动后有时还是不会隐藏,郁闷。。。。有没有限制鼠标移动至某点后不再可以移动,只能进行点击操作?
离线zcspl
只看该作者 7楼 发表于: 2009-08-11
鼠标限制试验了下,在MouseMoveEvent里设置鼠标位置,但是因为刷新问题鼠标显示效果不好而且CPU占用还是很高。。。大家有什么号的意见没有?   急啊。。。
离线duduqq

只看该作者 8楼 发表于: 2009-08-11
在mouseMoveEvent()里直接把它return() ;

mouseMoveEvent(QMouseEvent *event)
{
    return ; //什么都不做,直接return,不让它进入事件循环
}
离线zcspl
只看该作者 9楼 发表于: 2009-08-11
楼上的建议我试过了,因为鼠标移动占CPU,所以才想到把鼠标限制在一个点上或一个范围之内。其实占CPU高,主要是因为QT的重绘导致的。所以现在想尽量减少QT的重绘,始终找不到个很好的解决方法。现在整个项目就卡在这个瓶颈上。。。。。
离线zcspl
只看该作者 10楼 发表于: 2009-08-11
虽然在运行时加入-nomouse,可以彻底隐藏鼠标,CPU也不占了。但是我现在的情况是需要有时可以无限制使用鼠标。而有时在处理重大事件时尽可能降低鼠标移动所占CPU,把尽可能多的CPU利用率交给需要处理的重大事件。
离线jwqacqy
只看该作者 11楼 发表于: 2011-01-04
请教个问题刚做了个测试  336mhz的主频 64mb的SDRAM
QT的demo程序在320x240的大小的窗口下操作  cpu占用率大概20%   而设置为
944x704大小的窗口下操作时  cpu的占用率大概到了56%
窗口设置大了   界面响应就很卡  这是为什么啊?
离线biosxjj

只看该作者 12楼 发表于: 2011-01-05
2410 本来就不行 用qt3 看看
快速回复
限100 字节
 
上一个 下一个