QT——键盘事件(捕获按键事件)

简介: QT——键盘事件(捕获按键事件)

文章目录

qt增加按键事件处理响应


qt增加按键事件处理响应

在使用qt时,当需要处理按键触发的键盘事件的时候,需要用到事件触发响应。

查阅文档,QT已经实现了这一系列的键盘事件


void QWidget::keyPressEvent(QKeyEvent *event)   //键盘按下事件
void QWidget::keyReleaseEvent(QKeyEvent *event) //键盘松开事件

这样两个都基本上能够满足一般的需求了,但是前提是已经获得焦点的控件已经获取焦点。具体怎么使用呢?

在控件的头文件.h中进行声明:

//需要包含按键事件的头文件
#include <QKeyEvent>
protected:
    virtual void keyPressEvent(QKeyEvent *ev);
    virtual void keyReleaseEvent(QKeyEvent *ev);

在.cpp中进行实现相应的功能:

//键盘按下触发事件
  void MainForm::keyPressEvent(QKeyEvent *ev)
    {
        if(ev->key() == Qt::Key_F5)
        {
           ui->stackedWidget->reloadPage();
           return;
        }
        QWidget::keyPressEvent(ev);
    }
//键盘松开触发事件
    void MainForm::keyReleaseEvent(QKeyEvent *ev)
    {
        if(ev->key() == Qt::Key_F5)
        {
           ui->stackedWidget->reloadPage();
           return;
        }
        QWidget::keyReleaseEvent(ev);
    }

在一些程序中,我们发现这样并不好使,怎么回事呢?

这时候可以试试在构造函数中添加一下函数,使其具有捕获键盘事件的能力:

this->grabKeyboard();


相关文章
|
7月前
|
存储 开发框架 开发者
QT C++焦点事件:多角度解析实用技巧与方法
QT C++焦点事件:多角度解析实用技巧与方法
1436 0
|
7月前
|
API
QT基础入门——Qt事件(五)
QT基础入门——Qt事件(五)
449 0
QT基础入门——Qt事件(五)
|
存储 Cloud Native 程序员
C++ Qt 事件(event)
C++ Qt 事件(event)
|
2月前
|
存储 Windows
(13) Qt事件系统(two)
文章详细介绍了Qt事件系统,包括事件分发、自定义事件、事件传播机制、事件过滤以及事件与信号的区别。
116 3
(13) Qt事件系统(two)
|
2月前
|
编解码 程序员
(12)Qt事件系统(one)
本文详细介绍了Qt事件系统,包括各种系统事件、鼠标事件、键盘事件、定时器等的处理方法和示例代码。
101 0
|
4月前
|
开发者
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
243 4
|
6月前
Qt事件分发器、事件过滤器
Qt事件分发器、事件过滤器
|
5月前
|
开发者
Qt中的事件该如何学习?(附带案例)
事件是Qt中比较重要的一部分,在初期如果理解不当学习可能会比较困难,这里提一嘴当初教我的那位老师水平是真的高,让我很轻易的就理解了事件的概念。 在平时我们见到那些界面上的某些快捷键就有可能是事件做的,例如ESC关闭窗口,Enter提交或者登录这种类似的,这也是事件的强大之处。
139 0
|
7月前
|
开发框架 算法 程序员
【Qt 元对象系统】深入探索Qt事件过滤:从基础到高级应用
【Qt 元对象系统】深入探索Qt事件过滤:从基础到高级应用
218 7
|
7月前
|
测试技术 数据库 C++
Qt C++拖放事件探索之旅:多方法深入解析
Qt C++拖放事件探索之旅:多方法深入解析
596 1