100个有用的Qt 4 程序中鼠标与键盘操作技巧(更新中)
2011-05-08 11:24
417 查看
问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:我想在程序中读出鼠标点击的位置的坐标值,该怎么办呢?
答7:可以使用QMouseEvent::pos()来获取坐标值;另外也可以用QCursor::pos()函数来得到坐标值。
问8:Qt中如何隐藏鼠标指针?
答8:可以使用下面的语句:
this->setCursor(Qt::BlankCursor); //隐藏鼠标
this->setCursor(Qt::ArrowCursor); //显示正常鼠标
把this改为需要隐藏鼠标的部件,就可以令当鼠标移动到该部件时候,效果生效。
答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:我想在程序中读出鼠标点击的位置的坐标值,该怎么办呢?
答7:可以使用QMouseEvent::pos()来获取坐标值;另外也可以用QCursor::pos()函数来得到坐标值。
问8:Qt中如何隐藏鼠标指针?
答8:可以使用下面的语句:
this->setCursor(Qt::BlankCursor); //隐藏鼠标
this->setCursor(Qt::ArrowCursor); //显示正常鼠标
把this改为需要隐藏鼠标的部件,就可以令当鼠标移动到该部件时候,效果生效。
相关文章推荐
- 100个有用的Qt 4 程序中鼠标与键盘操作技巧(更新中)
- 程序模拟键盘鼠标操作
- 将CodedUI Test 放到控制台程序中,模拟鼠标键盘操作
- C# 调用windows api 操作鼠标、键盘、窗体合集...更新中
- 将CodedUI Test 放到控制台程序中,模拟鼠标键盘操作
- 实现键盘操作鼠标的简单程序
- Delphi中判断当前程序运行过程中长时间无鼠标与键盘操作
- python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为
- 【原创】用MASM32写的记录和回放 键盘+鼠标 操作程序
- 模拟操作(键盘、鼠标)二
- qt做的软件的更新程序!
- Dojo初探之4:dojo的event(鼠标/键盘)事件绑定操作(基于dojo1.11.2版本)
- CSS(一)有用的CSS技巧(持续更新)
- 怎样不用鼠标,完全只靠键盘操作电脑?
- selenium webdriver学习(十三)------------如何利用Actions类模拟鼠标和键盘的操作
- 记录一些有用的代码技巧,不定期更新
- Win8系统常见的鼠标操作与对应的键盘快捷键
- Java使用Robot操作键盘和鼠标
- Control Study -> 键盘模拟鼠标(实现用键盘操作鼠标光标)(示例代码下载)
- Java使用Robot操作键盘和鼠标