Qt--模拟按下按键(键盘)
一、前言
最近在做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--模拟按下按键(键盘)相关推荐
- ubuntu下qt模拟键盘按键按下_基于QT的跨平台虚拟键盘设计与实现
摘 要: 针对QT在Windows.Linux.以及嵌入式Linux-arm等不同平台下没有开源.高效的虚拟键盘(包含中文输入法),以及QT版本升级造成代码不兼容等问题,设计并实现了一个跨平台的虚拟 ...
- QT防止锁屏工具(QT模拟Windows按键按下)
有些公司可能会对员工使用的电脑进行加域控制.如长时间无操作,熄灭屏幕并自动锁定.长时间无使用自动关机等控制.且不能进行个性化设置.有时与同事讨论问题,一段时间没有操作电脑就会导致进入锁定状态,必须重新 ...
- qt Android 按键事件,QT无窗口状态下对键盘事件的监听
Question:最近在搞linux下的一个客户端项目,需要接收键盘事件,但是又不能有界面,这种情况怎么处理呢? int main(int argc, char *argv[]) { QApplica ...
- qt模拟键盘的三种实现方式(思路+demo)
转载:http://www.360doc.com/content/13/1122/15/6828497_331303961.shtml 按照我自己的理解,qt模拟键盘分三个层次的模拟. 1.单线程的模 ...
- html模拟点击某个键盘按钮,如何使用JavaScript模拟按键或单击?
模拟鼠标单击 我的猜测是网页正在监听mousedown而不是点击(这对于可访问性是不利的,因为当用户使用键盘时,只会触发焦点和点击,而不是mousedown).所以你应该模拟mousedown,cli ...
- 模拟linux设备按键工具,linux下如何模拟按键输入和模拟鼠标
linux下如何模拟按键输入和模拟鼠标 发布时间:2008-08-19 21:11:54来源:红联作者:anopup 查看/dev/input/eventX是什么类型的事件, cat /proc/bu ...
- Qt在Win10下调用系统的软键盘
1.在windows下使用Qt调用系统的软键盘可以使用: QDesktopServices::openUrl(QUrl("osk.exe", QUrl::TolerantMode) ...
- 驱动级模拟驱动级模拟:直接读写键盘的硬件端口!
驱动级模拟驱动级模拟:直接读写键盘的硬件端口! 有一些使用DirectX接口的游戏程序,它们在读取键盘操作时绕过了windows的消息机制,而使用DirectInput.这是因为有些游戏对实时性控制的 ...
- Qt学习之Qt基础入门(下)
1. 前言 前两篇博客简单的阐述了一下Qt的入门用法,这篇博客继续跟着视频学习. Qt入门系列: Qt学习之C++基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门(中) ...
最新文章
- 不一样的Gradle多渠道配置总结
- 【Redis】2、CentOS 7 上安装 redis3.2.3安装与配置
- 基础三:控制执行流程
- PAT甲级 -- 1053 Path of Equal Weight (30 分)
- Android 仿王者荣耀广告弹窗,android仿王者荣耀对战资料之能力图
- LeetCode 214. 最短回文串(字符串哈希)
- 如何使用pandas正确读取带有中文的cvs文件
- 全志R40 串口485 控制操作
- centos 7 菜鸟第一天 找回win10
- 【转】eclipse 查看原始类出现The jar file rt.jar has no source attachment解决方法
- 人工智能的发展_人工智能发展带来的机遇
- 模板解压下来是php文件,smarty模板解压完将libs目录放到哪?
- 利用URL对网络资源进行下载(简制版)
- 向weka 中添加DBSCAN算法
- 1034 有理数四则运算
- 裴波那契数列的递归和动态规划算法
- 把对象push进数组
- 普渡大学电子计算机专业,普渡大学电子与计算机工程专业硕士录取!
- linux 内核 输出,Linux基础命令---dmeg显示内核输出
- sw2urdf插件安装提示
热门文章
- 2021年NCIS医疗质量管理控制情况调查表病案首页上传
- 如何在excel多条件筛选
- 数据建模 Database Modeling:概念 (Conceptual) vs 逻辑 (Logical) vs 物理数据 (Physical) 模型
- python随机生成英文字母_在Python中生成随机字母
- 水晶报表中如何创建自定义的纸张大小格式?
- Win系统 - 关于GPU,你需要长的“姿势”
- BAT程序员轻轻松松拿20k?学会这些涨薪秘籍你也行!
- 【C语言】C语言之数字金字塔全家桶
- Photoshop简单几步打造酷火焰字特…
- 锻铸件三维扫描逆向设计,助力新产品研发