• 概要
  • 使用keyPressEvent 函数进行按按事按捕获
    • 使用方法

      • 头文件里重写事件
      • cpp文件
    • keyPressEvent需要注意的地方
  • 用setShortcut设置快捷键
  • designer 上属性里面设置快捷键

概要

QT按钮主要有QToolButton 和 QPushButton, 它们很多时候都需要设置快捷键, 这样用户操作起来就更为方便。 设置快捷键的方式是有几种的,下面总结了一下, 项目中,使用时,就看怎么方便,快捷怎么使用吧。


使用keyPressEvent 函数进行按按事按捕获


使用方法


头文件里重写事件:

virtual void keyPressEvent(QKeyEvent* event);
  • 1

cpp文件

void Widget::keyPressEvent(QKeyEvent* event)
{if(event->key() == Qt::Key_Left) {function1();} else if(event->key() == Qt::Key_Right) {function2();}...
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

keyPressEvent需要注意的地方

它并不像mousePressEvent可以直接向上面一样用,上面的代码,实际运行起来是不起作用的。 
它需要对对应的按键设置焦点规则,否则是不能聚焦的, 所以上面的keyPressEvent 事件是不能够被捕获的。 
需要进行代码焦点规则设置: 
ui->leftButton->setFocusPolicy(Qt::StrongFocus); 
ui->rightButton->setFocusPolicy(Qt::StrongFocus);

我觉得这个应该这样来理解: 
一台电脑通常是只插入一个鼠标,所以不需要这样的设置。但一个界面上的控件就可能有多个, 而且每个都可能用keyPressEvent事件,而这个事件在这么多的控件下面捕获哪个控件呢? 所以就很难辨别,这时我们对应的控件来setFocusPolicy,就让系统知道是那些控件需要进行事件捕获。


用setShortcut设置快捷键

在上面使用keyPressEvent的方法,我们明显地看到过程是稍稍麻烦一点的,那么有没有更简便一点的呢, 那就是用setShortcut来设置, 这种更适合用代码写出来的控件,用designer拖的控件有更简单的,虽然它们是一样的。

如: 
leftButton->setShortcut(QKeySequence(QLatin1String(“Left”))); 
rightButton->setShortcut(QKeySequence(QLatin1String(“Right”)));


designer 上属性里面设置快捷键

在控件对应的ABstractButton属性里面,有一个shortcut属性框,当我们选择它时,在键盘上按哪个键,这个键就直接设置为快捷键, 当我们的控件与对应的槽函数绑定时就会起作用。

QT 按钮控件设置快捷键相关推荐

  1. Qt界面优化:Qt窗体控件设置

    Qt界面优化:Qt窗体控件设置 文章目录 Qt界面优化:Qt窗体控件设置 一.效果图 1.鼠标移动点击效果 2. Qt托盘效果 二.使用步骤 1. 背景图片的添加 2. 控件样式的更改 3. Qt窗体 ...

  2. 微信小程序按钮控件设置呈现效果

    1.效果图 在小程序中完成上述布局,需要设置四个按钮位置,控制每个按钮大小.设置按钮背景颜色,设置标题和图标的位置. 2.代码说明 2.1 index.wxml <view class=&quo ...

  3. Qt 按钮控件虚线框

    虚线框复现来源 点选按钮,使用 Tab 键在界面中切换, 会发现一旦切换到按钮上会附带一个虚线框,如下图所示 解决措施 1,在样式表中添加如下一行代码即可解决空间中获取焦点出现虚线框的问题. /*re ...

  4. Android --- 按钮控件设置与不设置背景都会有一个小小的灰色阴影怎么去掉?

    如下图:阴影比较小但是放在手机上运行起来就明显了 有阴影的代码: <Buttonandroid:layout_width="0dp"android:layout_weight ...

  5. html 复选按钮 全选,JS实现复选按钮控件全选和批量操作

    2.1 准备数据 新建普通报表,新建数据库查询数据集 ds1,SQL 语句为:SELECT * FROM Sales 2.2 设计表格 如下图设计填报模板的表格样式,其中 A3 单元格的左父格为 B3 ...

  6. qt设置边框颜色_Qt开源作品14-导航按钮控件

    ## 一.前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本上所有 ...

  7. QT上设置背景图不影响子控件以及按钮控件的透明化

    QT中设置背景图不影响子控件 QT中设置背景图的方法不少,我这里是直接使用stylesheet来设置背景图.如果直接在UI界面进行如下所示设置 border-image: url(:/resource ...

  8. C# WinForm给Button按钮或其它控件添加快捷键响应

    就在这介绍三种添加快捷键的方式. 第一种Alt + *(按钮快捷键) 在大家给button.label.menuStrip等控件设置Text属性时在名字后边加&键名就可以了,比如button1 ...

  9. QT旋转按钮控件的实现

    目录 一.实现需求:鼠标hover时旋转 二.实现方式:计时器做动画 三.代码实现 QT旋转按钮控件的实现 一.实现需求:鼠标hover时旋转 需求是:实现类似于WINDOWS下,某些软件窗口关闭按钮 ...

最新文章

  1. mac操作系统自带的文本编辑软件
  2. SQL Tuning 基础概述01 - Autotrace的设定
  3. HTML5新增表单验证
  4. ImportError: No module named model_libs
  5. kbmMW功能 - kbmMWProcess单元(转帖)
  6. 51nod 1101 换零钱 完全背包的变型 动态规划
  7. Python:在Pandas数据框中查找缺失值
  8. 【Python练习题】程序5
  9. 一个10年SEO工作者的35个SEO经验
  10. srand rand time函数设置随机值
  11. Linux学习—编译
  12. linux+3d建模软件,拿走不谢!10款最适合初学者和高级用户的3D设计软件
  13. OB0202 obsidian kanban插件使用
  14. 一文了解上拉电阻和下拉电阻(一)
  15. 标题优化的技巧是什么
  16. 在OpenCV里使用背景去除
  17. Android中实现截图的几种方式
  18. C语言随机刷新,C语言 刷新缓冲区
  19. leetcode题解之相交链表
  20. Mac OS X Mavericks 迅雷下载地址 ( mac os x 10.9 )

热门文章

  1. 如何高效率学习R?[转自R语言中文社区]
  2. JavaScript是否具有接口类型(例如Java的“接口”)?
  3. 数据库外键:一对多/多对多关系
  4. Git使用命令行拉取项目、提交代码
  5. 荣耀linux版开机内存占用高,win10开机内存占用50怎么办_win10一开机内存就占用过高的解决方法...
  6. php 操作jira REST API
  7. 【python3数据结构】图Graph及DFS(深度优先搜索)BFS(广度优先搜索)
  8. 开通企业邮箱多少钱?企业邮箱怎么注册申请?
  9. 我在北上广混得不怎么样,可我不想离开
  10. java实现微信小程序支付功能