ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

qt5--键盘事件

2020-09-25 14:00:41  阅读:233  来源: 互联网

标签:qt5 Qt -- Win Key 键盘 key qDebug include


需要 #include<QKeyEvent>

win.h

#ifndef WIN_H
#define WIN_H

#include <QWidget>
#include <QDebug>
#include<QKeyEvent>  //键盘模块

class Win : public QWidget
{
    Q_OBJECT

public:
    Win(QWidget *parent = nullptr);
    ~Win();

    void keyPressEvent(QKeyEvent *ev); //键盘按下事件

};
#endif // WIN_H

win.cpp

#include "win.h"

Win::Win(QWidget *parent)
    : QWidget(parent)
{
}

Win::~Win()
{
}

void Win::keyPressEvent(QKeyEvent *e)
{
int key=e->key();  //返回触发事件键的键值
//大写字母的ASCii吗
//不加shift键的ASCii吗

static int i=0;
//一个普通键
if(e->key() == Qt::Key_F5){  //如果按下的是F5键
    //按键详情:https://blog.csdn.net/weixin_42692504/article/details/95116279
    qDebug()<<"F5:"<<i;
}

//两键组合
if(e->modifiers() == Qt::ControlModifier){ //如果按下了CTRL键
       if(e->key() == Qt::Key_M){
           qDebug()<<"CTRL+m:"<<i;
       }
    }

if(e->modifiers() == Qt::AltModifier){ //如果按下了ALT键
       if(e->key() == Qt::Key_M){
           qDebug()<<"ALT+m:"<<i;
       }
    }

if(e->modifiers() == Qt::ShiftModifier){ //如果按下了Shift键
       if(e->key() == Qt::Key_M){
           qDebug()<<"Shift+m:"<<i;
       }
    }

//三键组合Shift + Ctrl + A的实现
if (e->modifiers() == (Qt::ShiftModifier | Qt::ControlModifier) && e->key() == Qt::Key_A)
      {
          qDebug()<<"CTRL+Shift+a:"<<i;
      }



//qDebug()<<key;
i++;
QWidget::keyPressEvent(e);   //保存默认事件
}

main.cpp

#include "win.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Win w;
    w.show();
    return a.exec();
}

以上工程下载地址:

 

 

 

 

 

标签:qt5,Qt,--,Win,Key,键盘,key,qDebug,include
来源: https://www.cnblogs.com/liming19680104/p/13729782.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有