QPressEvent实现双击ctrl快捷键

原创不易,转载请注明原出处:
http://blog.csdn.net/yp541118319/article/details/56009783

I、按键事件

QKeyEvent, QKeyEventTransition用于存储捕捉到的按键事件,
包含单个按键,组合按键,按键序列(设置Qt::WidgetAttribute–Qt::WA_KeyCompression后可获得)
包括keyPressEvent, keyReleaseEvent
可以通过重载两者来自定义按键事件的响应,不处理的按键事件应继续交给父类函数处理:QWidget::keyPressEvent(event); //保存默认事件

II、按键行为

Qt中的按键分两种:auto-repeating key、initial key。
注:keyPressEvent与keyReleaseEvent行为类似,不重复赘述

auto-repeating key基本是普通的字母、数字按键。长按会不断产生keyPressEvent。处理时需要屏蔽重复的事件:“if(event->isAutoRepeat()) return;

initial key类似Ctrl, Shift, Alt等辅助类按键,只在按下时产生一个keyPressEvent。

III、按键类

Qt中与按键相关类有QKeySequence, QKeySequenceEdit
QKeySequence用于存储按键的组合,最多4个按键。
1、包含3类按键值QKeySequence:StandardKey,Qt::Key, Qt::Modifier
2、有3种方式:标准快捷键(系统定义),自定义快捷键(覆盖系统定义),硬编码快捷键(自由组合)
Key sequences can be constructed for use as keyboard shortcuts in three different ways:
。。For standard shortcuts, a standard key can be used to request the platform-specific key sequence associated with each shortcut.
。。For custom shortcuts, human-readable strings such as “Ctrl+X” can be used, and these can be translated into the appropriate shortcuts for users of different languages. Translations are made in the “QShortcut” context.
。。For hard-coded shortcuts, integer key codes can be specified with a combination of values defined by the Qt::Key and Qt::Modifier enum values. Each key code consists of a single Qt::Key value and zero or more modifiers, such as Qt::SHIFT, Qt::CTRL, Qt::ALT and Qt::META.

VI、快捷键

QShortcut自动监听keyEvent相关事件,检测指定的QKeySequence,执行指定函数。

V、双击Ctrl快捷键

双击Ctrl不符合qt的快捷键规则,只能通过重载QKeyEvent的方式自定义按键事件响应。使用QTimer定时器来限制双击Ctrl的时间间隔。

class control : public QWidget
{Q_OBJECTQTimer *m_shortcutTimer;
protected:void keyPressEvent(QKeyEvent *ke){if(ke->key() == Qt::Key_Control){if(m_shortcutTimer->isActive())QMessageBox::aboutQt(this);elsem_shortcutTimer->start();}elseQWidget::keyPressEvent(ke);}
};

以上信息均来自网络公开信息、开源代码等共享渠道,若有侵权,请告知撤销。

QPressEvent实现双击ctrl快捷键相关推荐

  1. swing 文本框双击Ctrl,触发删除全部并黏贴

    java swing 文本框双击Ctrl,触发删除全部并黏贴 tc.addKeyListener(new KeyListener() {private long lastTimeMillSencond ...

  2. Ctrl + / 快捷键失效解决方案

    ctrl + /失效 问题描述 解决方案 总结反思 问题描述   Windows11 安装 KB5010795 后,在所有IDE中均无法使用ctrl + / 快捷键注释代码,安装之前还可以用,安装之后 ...

  3. idea 缩小 放大 字体 鼠标 滚动 ctrl 快捷键

    省流: file --> setting --> keymap(键盘映射) -->搜索 font 搜font(中文版搜字体),双击 increase(增加) decrease(减少) ...

  4. Idea使用“ctrl+/”快捷键进行 行注释 时,在//后自动添加空格

    踏破铁鞋无觅处,得来全不费工夫 废话不多说,Ctrl+Alt+S 快捷键打开setting后,根据截图设置即可:

  5. 浏览器ctrl快捷键大全

    本小技巧适用于360安全浏览器和chorm浏览器 ctrl+w 关闭本窗口 ctrl+e 恢复关闭窗口 ctrl+r重载窗口 ctrl+t 新开窗口 ctrl+u查看当前网页的源代码 ctrl+o打开 ...

  6. Ctrl快捷键使用大全

    Ctrl+S 保存 Ctrl+W 关闭程序 Ctrl+N 新建 Ctrl+O 打开 Ctrl+Z 撤销 Ctrl+F 查找 Ctrl+X 剪切 Ctrl+C 复制 Ctrl+V 粘贴 Ctrl+A 全 ...

  7. linux下的ctrl快捷键使用

    ctrl键组合 ctrl+a:光标跳到行首. ctrl+b:光标左移一个字母 ctrl+c:杀死当前进程. ctrl+d: 删除提示符后一个字符或exit或logout. ctrl+e:光标移到行尾. ...

  8. 特殊字符(及其Ctrl快捷键)

    ** 在脚本或其他别的地方出现的特殊字符 ** 注释. 以一个#开头的行 (#!是例外) 是注释行. 1 # 这是一行注释. 注释也可以出现在一个命令语句的后面. 1 echo "A com ...

  9. c语言复制粘贴快捷键_大家还知道哪些快捷键方法?如:ctrl+c复制,ctrl+v粘贴

    Windows快捷键 单独按Windows:显示或隐藏"开始"功能表 Windows+BREAK:显示"系统属性"对话框 Windows+D:显示桌面 Wind ...

  10. 全选快捷键ctrl加什么 全选快捷键ctrl加哪个键 全选是ctrl加什么?

    全选快捷键ctrl加什么 全选快捷键ctrl加哪个键 1.word全选快捷键"ctrl+A".在word文档中,点击"ctrl+A"两个键,即可选中全部内容. ...

最新文章

  1. 让seo效果起死回生的妙招
  2. 离职后,我们该如何处理社保!
  3. hdu2037今年暑假不AC
  4. 广告投放管理平台 oython源码_悠易互通CDP产品DataBank获科睿创新奖年度成长价值平台...
  5. java 存储过程返回结果集_通过SQL“select * from”从java存储过程返回结果集
  6. vue key重复_12道vue高频原理面试题,你能答出几道?
  7. caffe学习日记--lesson3:win8系统,VS2013下的caffe工程编译探究
  8. Docker 安装常用软件记录
  9. priority_queue C++
  10. 移动前端开发人员必知必会:移动设备概述
  11. LTE/LTE advanced——UMTS 长期演进理论与实践——控制面(3)
  12. 通过ICommand和ITool操作地图
  13. 空分多址——SDMA
  14. 【php】php开发的前期准备
  15. 职责链模式之真假美猴王
  16. 华硕笔记本扇热声音大
  17. 高精度人员定位系统适用于哪些行业领域?
  18. 文件锁(lockf)
  19. 每个程序员都应该了解:KISS:60年前美国军方的编程原则。
  20. 豆瓣电影(一):网络爬虫

热门文章

  1. 单片机原理及应用复习
  2. windows下 robocopy命令
  3. 程序员必备的一些数学基础知识
  4. linux安装中文输入法
  5. 豪典软件测试版,豪典线材优化软件(通用线材优化工具)V2019.1.0 最新版
  6. 用Java打印菱形(奇数行菱形)
  7. Jmeter安装及简单使用
  8. java从入门到精通视频教程-[网盘下载]在线观看
  9. Eclipse 添加 JD-eclipse 反编译插件
  10. 《操作系统实战 45 讲》14 Linux初始化(上):GRUB与vmlinuz的结构(学习笔记)