一、前言

最近在做QWT开发的时候碰到一个问题,QwtPlotZoomer提供的放大、缩小操作只支持鼠标事件或键盘事件,但是我希望通过点击软件上的按钮去响应放大、缩小操作,但是事件槽函数不是我写的,不知道怎么调用,所以就只能给放大、缩小操作写一个快捷键了。例如:点击键盘I键放大、O键缩小,然后只需要在软件按钮槽函数中模拟按下了I键和O键,就可以响应相应的放大、缩小操作了。


二、具体操作

//模拟按下键盘I键
QWidget *receiver = QApplication::focusWidget();
QKeyEvent keyPress(QEvent::KeyPress, Qt::Key_I, Qt::NoModifier);
QKeyEvent keyRelease(QEvent::KeyRelease, Qt::Key_I, Qt::NoModifier);
QApplication::sendEvent(receiver, &keyPress);
QApplication::sendEvent(receiver, &keyRelease);
//模拟按下键盘O键
QWidget *receiver = QApplication::focusWidget();
QKeyEvent keyPress(QEvent::KeyPress, Qt::Key_O, Qt::NoModifier);
QKeyEvent keyRelease(QEvent::KeyRelease, Qt::Key_O, Qt::NoModifier);
QApplication::sendEvent(receiver, &keyPress);
QApplication::sendEvent(receiver, &keyRelease);

QKeyEvent构造函数:

  • 第一个参数:QEvent事件(查阅官方文档)
  • 第二个参数:键盘按键(查阅官方文档)
  • 第三个参数:组合键
Constant Description
Qt::NoModifier 没有组合键被按下
Qt::ShiftModifier Shift键被按下
Qt::ControlModifier Control键被按下
Qt::AltModifier Alt键被按下
Qt::MetaModifier Meta键被按下(Fn键)
Qt::KeypadModifier 按下键盘按钮

Qt--模拟按下按键(键盘)相关推荐

  1. ubuntu下qt模拟键盘按键按下_基于QT的跨平台虚拟键盘设计与实现

    摘  要: 针对QT在Windows.Linux.以及嵌入式Linux-arm等不同平台下没有开源.高效的虚拟键盘(包含中文输入法),以及QT版本升级造成代码不兼容等问题,设计并实现了一个跨平台的虚拟 ...

  2. QT防止锁屏工具(QT模拟Windows按键按下)

    有些公司可能会对员工使用的电脑进行加域控制.如长时间无操作,熄灭屏幕并自动锁定.长时间无使用自动关机等控制.且不能进行个性化设置.有时与同事讨论问题,一段时间没有操作电脑就会导致进入锁定状态,必须重新 ...

  3. qt Android 按键事件,QT无窗口状态下对键盘事件的监听

    Question:最近在搞linux下的一个客户端项目,需要接收键盘事件,但是又不能有界面,这种情况怎么处理呢? int main(int argc, char *argv[]) { QApplica ...

  4. qt模拟键盘的三种实现方式(思路+demo)

    转载:http://www.360doc.com/content/13/1122/15/6828497_331303961.shtml 按照我自己的理解,qt模拟键盘分三个层次的模拟. 1.单线程的模 ...

  5. html模拟点击某个键盘按钮,如何使用JavaScript模拟按键或单击?

    模拟鼠标单击 我的猜测是网页正在监听mousedown而不是点击(这对于可访问性是不利的,因为当用户使用键盘时,只会触发焦点和点击,而不是mousedown).所以你应该模拟mousedown,cli ...

  6. 模拟linux设备按键工具,linux下如何模拟按键输入和模拟鼠标

    linux下如何模拟按键输入和模拟鼠标 发布时间:2008-08-19 21:11:54来源:红联作者:anopup 查看/dev/input/eventX是什么类型的事件, cat /proc/bu ...

  7. Qt在Win10下调用系统的软键盘

    1.在windows下使用Qt调用系统的软键盘可以使用: QDesktopServices::openUrl(QUrl("osk.exe", QUrl::TolerantMode) ...

  8. 驱动级模拟驱动级模拟:直接读写键盘的硬件端口!

    驱动级模拟驱动级模拟:直接读写键盘的硬件端口! 有一些使用DirectX接口的游戏程序,它们在读取键盘操作时绕过了windows的消息机制,而使用DirectInput.这是因为有些游戏对实时性控制的 ...

  9. Qt学习之Qt基础入门(下)

    1. 前言 前两篇博客简单的阐述了一下Qt的入门用法,这篇博客继续跟着视频学习. Qt入门系列: Qt学习之C++基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门(中) ...

最新文章

  1. 不一样的Gradle多渠道配置总结
  2. 【Redis】2、CentOS 7 上安装 redis3.2.3安装与配置
  3. 基础三:控制执行流程
  4. PAT甲级 -- 1053 Path of Equal Weight (30 分)
  5. Android 仿王者荣耀广告弹窗,android仿王者荣耀对战资料之能力图
  6. LeetCode 214. 最短回文串(字符串哈希)
  7. 如何使用pandas正确读取带有中文的cvs文件
  8. 全志R40 串口485 控制操作
  9. centos 7 菜鸟第一天 找回win10
  10. 【转】eclipse 查看原始类出现The jar file rt.jar has no source attachment解决方法
  11. 人工智能的发展_人工智能发展带来的机遇
  12. 模板解压下来是php文件,smarty模板解压完将libs目录放到哪?
  13. 利用URL对网络资源进行下载(简制版)
  14. 向weka 中添加DBSCAN算法
  15. 1034 有理数四则运算
  16. 裴波那契数列的递归和动态规划算法
  17. 把对象push进数组
  18. 普渡大学电子计算机专业,普渡大学电子与计算机工程专业硕士录取!
  19. linux 内核 输出,Linux基础命令---dmeg显示内核输出
  20. sw2urdf插件安装提示

热门文章

  1. 2021年NCIS医疗质量管理控制情况调查表病案首页上传
  2. 如何在excel多条件筛选
  3. 数据建模 Database Modeling:概念 (Conceptual) vs 逻辑 (Logical) vs 物理数据 (Physical) 模型
  4. python随机生成英文字母_在Python中生成随机字母
  5. 水晶报表中如何创建自定义的纸张大小格式?
  6. Win系统 - 关于GPU,你需要长的“姿势”
  7. BAT程序员轻轻松松拿20k?学会这些涨薪秘籍你也行!
  8. 【C语言】C语言之数字金字塔全家桶
  9. Photoshop简单几步打造酷火焰字特…
  10. 锻铸件三维扫描逆向设计,助力新产品研发