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()<
isAutoRepeat(); - // }
- if(event->key()==Qt::Key_Up)
- {
- if(event->isAutoRepeat())
- {
- return;
- }
- b_keyUp = true;//标记向上键已经按下
- }
- if(event->key()==Qt::Key_Left)
- {
- if(event->isAutoRepeat())
- {
- return;
- }
- b_keyLeft = true;
- }
-
-
- }
-
- void MainWindow6_4::keyReleaseEvent(QKeyEvent *event)
- {
- if(event->key()==Qt::Key_Up)//向上方向键
- {
- qDebug()<
currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz")<<"release:"<isAutoRepeat(); - qDebug()<<tr("up向上");
- if(event->isAutoRepeat())
- {
- return;
- }
- b_keyUp = false;
- if(b_move)
- {
- b_move = false;
- return;
- }
- if(b_keyLeft)
- {
- ui->pushButton->move(10,80);
- b_move= true;
- }
- else
- {
- ui->pushButton->move(120,80);
- }
-
- }
- else if(event->key()==Qt::Key_Left)
- {
- if(event->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您按了回车键哦"));
- }
- }
-