Qt设置快捷键

本文仅供本人知识总结使用,所以内容会比较浅显,不喜勿喷。


一、需要的类

QShortcut

函数:

  • autoRepeat()

    • 返回当前快捷键响应是否可以重复响应,默认Ture,返回值类型为bool
  • context()
    • 返回当前快捷响应的上下文,默认WindowShortcut,返回值类型ShortcutContext
  • id()
    • 返回当前快捷键响应的ID,返回值类型为int
  • isEnabled()
    • 返回当前快捷键响应是否启用,默认Ture,返回值类型为bool
  • key()
    • 返回当前快捷键响应的快捷键,默认None,返回值类型为QKeySequence
  • parentwidget()
    • 返回当前快捷键响应的父窗口,返回值类型为QWidget

信号

  • activated()

    • 快捷键被激活。

... ..

剩下的不一一列举了,贴上官方文档的链接,感兴趣的自己去看吧。


二、设置快捷键

官方文档原文翻译:

当用户为给定快捷方式键入键序列时,会发出快捷方式的activated()信号。(在出现歧义的情况下,会发出activatedAmbiguously()信号。)当快捷方式的父窗口小部件接收事件时,Qt的事件循环会“侦听”快捷方式。

# 创建快捷键
self.ShortCtrl_F = QShortcut(QKeySequence("Ctrl+F"),self)
# 给快捷键设置信号事件
self.ShortCtrl_F.activated.connect(def)

只是给主窗口创建快捷键的就不必往下看了;下面是只想给一些子窗口设置快捷键的理解,但对流程理解的正确性笔者也不能确定,因为官方文档也没说清楚。不过这个代码能正常实现这个需求是可以的,只是对具体内部的实现流程,笔者仍疑似之间。

我的理解:

当前快捷方式的父窗口self启动被打开或是焦点在它时,QKeySequence("Ctrl+F")快捷键才能激活事件def

例如:

我有个子窗口self.Widget_child需要点击按钮才能打开

  1. 没点击按钮,self.Widget_child没打开时,按下"Ctrl+F"事件def没反应。
  2. 点击按钮,self.Widget_child打开时,按下"Ctrl+F"事件def才有反应。
self.ShortCtrl_F = QShortcut(QKeySequence("Ctrl+F"),self.Widget_child)
self.ShortCtrl_F.activated.connect(def)

PySide6/PyQt开发经验总结(2) - 设置快捷键的更多相关文章

  1. 第15.45节、PyQt输入部件:QKeySequenceEdit快捷键输入部件简介和使用案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.功能简介 Key Sequence Edit输 ...

  2. js简单的设置快捷键,hotkeys捕获键盘键和组合键的输入

    设置快捷键 这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb). hotkeys on Githubhotkeys预览 创建 您将需要在您的系 ...

  3. Winform button按钮设置快捷键

    1)Text属性命名时后面&加键名,如:文件(&F) 2)添加一个ContextMenuStrip控件,同时在Items里添加一个项,并为项设置快捷键,把Visible设置为false ...

  4. 为控件Button设置快捷键(组合键)

    控件MenuStrip和ContextMenuStrip可通过ShortCcutKeys属性设置快捷键,而控件Button没有ShortcutKey属性,如何为控件Button设置快捷键呢(组合件键) ...

  5. xcode 设置快捷键 整行上下移动

    设置整行代码上下移动:找到Xcode中的自带的配置文件:/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/ ...

  6. Sublime Text设置快捷键让html文件在浏览器打开

    一.安装View In Browser插件 快捷键 Ctrl+Shift+P(菜单栏Tools->Command Paletter),输入 pcip选中Install Package并回车,输入 ...

  7. 【原创】Eclipse中为SVN设置快捷键

            SVN是深受开发者喜爱的版本控制工具,其较CVS有更好的控制策略.在Android开发中,我也选择SVN作为版本控制工具.Eclipse的SVN插件名叫Subclipse,可以到htt ...

  8. Web开发中设置快捷键来增强用户体验

    从事对日外包一年多以来,发现日本的无论是WinForm项目还是Web项目都注重快捷键的使用,日本人操作的时候都喜欢用键盘而不是用鼠标去点,用他们的话来说"键盘永远比鼠标来的快",所 ...

  9. win7系统自带截图工具快捷键是什么?怎么设置快捷键

    win7自带的截图工具很好,很强大,比从网上下载的截图工具好用多了,很少会出现问题.但是它能不能像QQ截图工具一样可以使用快捷键呢?今天小编和大家分享下心得,希望能够给你的工作带来快捷. 工具/原料 ...

  10. eclipse设置快捷键sysout+Alt+/后出System.out.println!亲測可用!

    曾经一直用myeclipse,没有这方面的顾虑,如今换到了eclipse,非常多要自己设置了,比方非常多快捷键. 最经常使用的,执行到sysout ,eclipse总是不自己主动补全,非常是恼火!!! ...

随机推荐

  1. 掉了两根头发后,我悟了!vue3的scoped原来是这样避免样式污染(上)

    前言 众所周知,在vue中使用scoped可以避免父组件的样式渗透到子组件中.使用了scoped后会给html增加自定义属性data-v-x,同时会给组件内CSS选择器添加对应的属性选择器[data- ...

  2. hynitron ts 驱动分析

    # hynitron ts 驱动分析 背景 在公司项目中搞LCD移植的时候,在TP功能上,有时候频繁操作屏幕时会导致i2c总线返回-2错误. 问题描述: 1.安卓桌面起来以后,点击屏幕有响应. 2.此 ...

  3. centos如何统计磁盘使用总量,以及cpu使用率

    剩余硬盘容量 T: df | awk '{print $4}' |sed 's/Available//g' |sed '/^\s*$/d' | awk '{sum+=$1} END {print su ...

  4. 嵌入式HLS 案例开发手册——基于Zynq-7010/20工业开发板(2)

    目 录 2 led_flash 案例 19 2.1 HLS 工程说明 19 2.2 编译与仿真 20 2.3 IP 核测试 23 3 key_led_demo 案例 23 3.1 HLS 工程说明 2 ...

  5. Linux系统用户组管理

    用户管理 ​ 和Windows一样在Linux中也存在许多用户,可以登陆Linux,和Windows不同的是,在Windows中同一时刻只可以存在一个用户登录系统,而在Linux中是允许多个用户同时登 ...

  6. debian12 创建本地harbor镜像库

    前言 harbor是一个docker/podman镜像管理库,可用于存储私人镜像.现将本人在debian12系统搭建harbor镜像库的过程记录下来,留作后续参考. 可以参考github harbor ...

  7. 创业型公司和BAT大厂招聘要求有什么不同?

    背景 很多Java初学都关心这么一个问题,Java学到什么程度以后可以找到第一份工作.大家的目标都很明确,也很实在,学习Java无非就是为了找工作,那到底我要学多少Java知识,才可以找到第一份工作呢 ...

  8. SpringBoot整合模版引擎freemarker实战

    Freemarker相关maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <a ...

  9. PTA数据结构和答案解析

    背景:期末数据结构复习题 绪论和线性表 判断题 The Fibonacci number sequence {F N } is defined as: F 0 =0, F 1 =1, F N =F N ...

  10. 一位有着近 10 年 iOS 开发经验的全职爸爸如何高效管理时间?

    名字: Mindr 开发者 / 团队: Florian Vates 平台: iOS, iPadOS, Android 正在开发中 请简要介绍下这款产品 有没有发现自己总是不断推迟待办事项的通知? Mi ...