QPressEvent实现双击ctrl快捷键
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快捷键相关推荐
- swing 文本框双击Ctrl,触发删除全部并黏贴
java swing 文本框双击Ctrl,触发删除全部并黏贴 tc.addKeyListener(new KeyListener() {private long lastTimeMillSencond ...
- Ctrl + / 快捷键失效解决方案
ctrl + /失效 问题描述 解决方案 总结反思 问题描述 Windows11 安装 KB5010795 后,在所有IDE中均无法使用ctrl + / 快捷键注释代码,安装之前还可以用,安装之后 ...
- idea 缩小 放大 字体 鼠标 滚动 ctrl 快捷键
省流: file --> setting --> keymap(键盘映射) -->搜索 font 搜font(中文版搜字体),双击 increase(增加) decrease(减少) ...
- Idea使用“ctrl+/”快捷键进行 行注释 时,在//后自动添加空格
踏破铁鞋无觅处,得来全不费工夫 废话不多说,Ctrl+Alt+S 快捷键打开setting后,根据截图设置即可:
- 浏览器ctrl快捷键大全
本小技巧适用于360安全浏览器和chorm浏览器 ctrl+w 关闭本窗口 ctrl+e 恢复关闭窗口 ctrl+r重载窗口 ctrl+t 新开窗口 ctrl+u查看当前网页的源代码 ctrl+o打开 ...
- Ctrl快捷键使用大全
Ctrl+S 保存 Ctrl+W 关闭程序 Ctrl+N 新建 Ctrl+O 打开 Ctrl+Z 撤销 Ctrl+F 查找 Ctrl+X 剪切 Ctrl+C 复制 Ctrl+V 粘贴 Ctrl+A 全 ...
- linux下的ctrl快捷键使用
ctrl键组合 ctrl+a:光标跳到行首. ctrl+b:光标左移一个字母 ctrl+c:杀死当前进程. ctrl+d: 删除提示符后一个字符或exit或logout. ctrl+e:光标移到行尾. ...
- 特殊字符(及其Ctrl快捷键)
** 在脚本或其他别的地方出现的特殊字符 ** 注释. 以一个#开头的行 (#!是例外) 是注释行. 1 # 这是一行注释. 注释也可以出现在一个命令语句的后面. 1 echo "A com ...
- c语言复制粘贴快捷键_大家还知道哪些快捷键方法?如:ctrl+c复制,ctrl+v粘贴
Windows快捷键 单独按Windows:显示或隐藏"开始"功能表 Windows+BREAK:显示"系统属性"对话框 Windows+D:显示桌面 Wind ...
- 全选快捷键ctrl加什么 全选快捷键ctrl加哪个键 全选是ctrl加什么?
全选快捷键ctrl加什么 全选快捷键ctrl加哪个键 1.word全选快捷键"ctrl+A".在word文档中,点击"ctrl+A"两个键,即可选中全部内容. ...
最新文章
- 让seo效果起死回生的妙招
- 离职后,我们该如何处理社保!
- hdu2037今年暑假不AC
- 广告投放管理平台 oython源码_悠易互通CDP产品DataBank获科睿创新奖年度成长价值平台...
- java 存储过程返回结果集_通过SQL“select * from”从java存储过程返回结果集
- vue key重复_12道vue高频原理面试题,你能答出几道?
- caffe学习日记--lesson3:win8系统,VS2013下的caffe工程编译探究
- Docker 安装常用软件记录
- priority_queue C++
- 移动前端开发人员必知必会:移动设备概述
- LTE/LTE advanced——UMTS 长期演进理论与实践——控制面(3)
- 通过ICommand和ITool操作地图
- 空分多址——SDMA
- 【php】php开发的前期准备
- 职责链模式之真假美猴王
- 华硕笔记本扇热声音大
- 高精度人员定位系统适用于哪些行业领域?
- 文件锁(lockf)
- 每个程序员都应该了解:KISS:60年前美国军方的编程原则。
- 豆瓣电影(一):网络爬虫