100个有用的Qt 4 程序中鼠标与键盘操作技巧(更新中)

在Qt应用程序中,针对鼠标和键盘的操作常见问题包括:嵌入式环境中鼠标移动缓慢、长运行任务时禁用鼠标、判断鼠标按键状态、处理鼠标点击事件及获取坐标值。解决方案涉及提高程序效率、使用多线程、设置鼠标等待状态、事件处理函数重写以及获取鼠标位置等技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问1:Qt 的程序在ARM板上运行时,发现鼠标移动速度很慢,但在PC机上测试则一切正常,这是什么原因?
答1:这里面恐怕更多情况下应考虑程序效率问题,因为嵌入式平台的资源是比较有限的。
可以的话,查看一下CPU的占用率,是不是很高。
如果是的话,说明程序效率不高,占用的资源过多。比如你的应用比较复杂,涉及到数据库操作、图片缩放或转换、视频显示、高分辨率下进行操作等等方面的话,就会占用大量资源,从而导致这种现象。
建议使用多线程。



问2:在点击按钮之后调用一个程序,该程序的运行时间较长,想让在该程序运行的这段时间内鼠标处于等待状态而不可用,直到该程序结束之后鼠标又可用,该如何处理?
答2:调用setCursor(Qt::WaitCursor); 即可。



问3:QMouseEvent可以通过哪个变量或者哪个函数判断鼠标左键是否被按着
答3:举例来说,可以使用下面的语句来判断
if( QMouseEvent::button == Qt::LeftButton )
{
.......
}



问4:如何判断鼠标左右键均未释放?
答4:重写mousePressEvent 和 mouseReleaseEvent事件处理,对按键进行判断。



问5:当鼠标点击子窗口时(如QLabel),不让子窗口响应鼠标点击事件,而让父窗口(如QWidget)响应鼠标点击事件,该怎样写代码?
答5:可以对子窗口调用setAttribute(Qt::WA_TransparentForMouseEvents);



问6:屏蔽QTextEdit的鼠标事件问题
我想在QTextEdit窗口部件上显示文本文件(就只是浏览而已),并显示行号,现在遇到问题是:如何屏蔽QTextEdit窗口部件上的鼠标事件,使其不接受鼠标的任何事件(单击、拖拽等)?
答6:你可以子类化一个QTextEdit,把这个子类的所有鼠标函数都重写,函数体是空的,即里面什么都不要写,这样就行了 。



问7:我

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值