您当前的位置: 首页 >  qt

txwtech

暂无认证

  • 2浏览

    0关注

    813博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

QT键盘事件_获取CTRL-SHIFT-回车键ctrl+M组合键

txwtech 发布时间:2022-09-11 20:02:17 ,浏览量:2

QT键盘事件_获取CTRL-SHIFT-回车键ctrl+M组合键

 

#ifndef MAINWINDOW6_4_H
#define MAINWINDOW6_4_H

#include 

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow6_4; }
QT_END_NAMESPACE

class MainWindow6_4 : public QWidget
{
    Q_OBJECT

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

private:
    Ui::MainWindow6_4 *ui;
    bool b_keyUp;//向上键按下的标志
    bool b_keyLeft;//向左按下的标志6_4
    bool b_move;//是否完成一次移动
protected:
    void keyPressEvent(QKeyEvent *event);
    void keyReleaseEvent(QKeyEvent *event);
};
#endif // MAINWINDOW6_4_H
#include "mainwindow6_4.h"
#include "ui_mainwindow6_4.h"
#include 
#include 
#include 
#include 

MainWindow6_4::MainWindow6_4(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::MainWindow6_4)
{
    ui->setupUi(this);
    setFocus();//是主界面获得焦点
    b_keyUp = false;
    b_keyLeft = false;
    b_move = false;
}

MainWindow6_4::~MainWindow6_4()
{
    delete ui;
}

void MainWindow6_4::keyPressEvent(QKeyEvent *event)
{
     if(event->key()==Qt::Key_Return)
    {
        QMessageBox::information(this,"tips",tr("press您按了回车键哦"));
    }
     if(event->modifiers()==Qt::ShiftModifier)
    {
        QMessageBox::information(this,"tips",tr("press您按了shift键哦"));
    }

    if(event->modifiers()==Qt::ControlModifier)//是否按下ctrl键
    {
        if(event->key()==Qt::Key_M)//是否按下了M键。by txwtech,src6_4
        {
            setWindowState(Qt::WindowMaximized);//设置窗口最大化
        }
//        else
//        {
//            QWidget::keyPressEvent(event);
//        }
        if(event->key()==Qt::Key_N)//是否按下了n键。by txwtech,src6_4
        {
            setWindowState(Qt::WindowNoState);//设置窗口还原
        }


    }
    //    if(event->key()==Qt::Key_Up)//向上方向键,构造函数要设置:setFocus();//是主界面获得焦点,否则不会执行
    //    {
    //        qDebug()key()==Qt::Key_Up)//向上方向键
    {
        qDebug()isAutoRepeat())
        {
            return;
        }
        b_keyLeft= false;
        if(b_move)
        {
            b_move=false;
            return;
        }
        if(b_keyUp)
        {
            ui->pushButton->move(10,80);//竖线左边位置
            b_move=true;
        }
        else
        {
            ui->pushButton->move(10,120);//竖线边位置
        }
    }
    else if(event->key()==Qt::Key_Down)
    {
        ui->pushButton->move(120,120);//使用向下方向键来还原按钮的位置
    }
    else if(event->modifiers()==Qt::Key_Return)
    {
        QMessageBox::information(this,"tips",tr("release您按了回车键哦"));
    }
}

关注
打赏
1665060526
查看更多评论
立即登录/注册

微信扫码登录

0.0578s