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();


相关文章
|
2月前
|
存储 开发框架 开发者
QT C++焦点事件:多角度解析实用技巧与方法
QT C++焦点事件:多角度解析实用技巧与方法
477 0
|
2月前
|
API
QT基础入门——Qt事件(五)
QT基础入门——Qt事件(五)
75 0
QT基础入门——Qt事件(五)
|
8月前
|
存储 Cloud Native 程序员
C++ Qt 事件(event)
C++ Qt 事件(event)
|
8月前
24 QT - 事件
24 QT - 事件
26 0
|
9天前
Qt事件分发器、事件过滤器
Qt事件分发器、事件过滤器
9 1
|
2天前
|
开发者
Qt中的事件该如何学习?(附带案例)
事件是Qt中比较重要的一部分,在初期如果理解不当学习可能会比较困难,这里提一嘴当初教我的那位老师水平是真的高,让我很轻易的就理解了事件的概念。 在平时我们见到那些界面上的某些快捷键就有可能是事件做的,例如ESC关闭窗口,Enter提交或者登录这种类似的,这也是事件的强大之处。
|
2月前
|
开发框架 算法 程序员
【Qt 元对象系统】深入探索Qt事件过滤:从基础到高级应用
【Qt 元对象系统】深入探索Qt事件过滤:从基础到高级应用
66 7
|
2月前
|
测试技术 数据库 C++
Qt C++拖放事件探索之旅:多方法深入解析
Qt C++拖放事件探索之旅:多方法深入解析
278 1
|
2月前
|
C++
qt事件过滤器的使用(可以用于控制屏幕背光等)
qt事件过滤器的使用(可以用于控制屏幕背光等)
34 0
|
2月前
|
安全 数据安全/隐私保护 C++
Qt C++ 键盘事件全解析:从基础到高级,实现精彩互动体验
Qt C++ 键盘事件全解析:从基础到高级,实现精彩互动体验
383 0