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


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

     

    1. #ifndef MAINWINDOW6_4_H
    2. #define MAINWINDOW6_4_H
    3. #include
    4. QT_BEGIN_NAMESPACE
    5. namespace Ui { class MainWindow6_4; }
    6. QT_END_NAMESPACE
    7. class MainWindow6_4 : public QWidget
    8. {
    9. Q_OBJECT
    10. public:
    11. MainWindow6_4(QWidget *parent = nullptr);
    12. ~MainWindow6_4();
    13. private:
    14. Ui::MainWindow6_4 *ui;
    15. bool b_keyUp;//向上键按下的标志
    16. bool b_keyLeft;//向左按下的标志6_4
    17. bool b_move;//是否完成一次移动
    18. protected:
    19. void keyPressEvent(QKeyEvent *event);
    20. void keyReleaseEvent(QKeyEvent *event);
    21. };
    22. #endif // MAINWINDOW6_4_H
    1. #include "mainwindow6_4.h"
    2. #include "ui_mainwindow6_4.h"
    3. #include
    4. #include
    5. #include
    6. #include
    7. MainWindow6_4::MainWindow6_4(QWidget *parent)
    8. : QWidget(parent)
    9. , ui(new Ui::MainWindow6_4)
    10. {
    11. ui->setupUi(this);
    12. setFocus();//是主界面获得焦点
    13. b_keyUp = false;
    14. b_keyLeft = false;
    15. b_move = false;
    16. }
    17. MainWindow6_4::~MainWindow6_4()
    18. {
    19. delete ui;
    20. }
    21. void MainWindow6_4::keyPressEvent(QKeyEvent *event)
    22. {
    23. if(event->key()==Qt::Key_Return)
    24. {
    25. QMessageBox::information(this,"tips",tr("press您按了回车键哦"));
    26. }
    27. if(event->modifiers()==Qt::ShiftModifier)
    28. {
    29. QMessageBox::information(this,"tips",tr("press您按了shift键哦"));
    30. }
    31. if(event->modifiers()==Qt::ControlModifier)//是否按下ctrl键
    32. {
    33. if(event->key()==Qt::Key_M)//是否按下了M键。by txwtech,src6_4
    34. {
    35. setWindowState(Qt::WindowMaximized);//设置窗口最大化
    36. }
    37. // else
    38. // {
    39. // QWidget::keyPressEvent(event);
    40. // }
    41. if(event->key()==Qt::Key_N)//是否按下了n键。by txwtech,src6_4
    42. {
    43. setWindowState(Qt::WindowNoState);//设置窗口还原
    44. }
    45. }
    46. // if(event->key()==Qt::Key_Up)//向上方向键,构造函数要设置:setFocus();//是主界面获得焦点,否则不会执行
    47. // {
    48. // qDebug()<isAutoRepeat();
    49. // }
    50. if(event->key()==Qt::Key_Up)
    51. {
    52. if(event->isAutoRepeat())
    53. {
    54. return;
    55. }
    56. b_keyUp = true;//标记向上键已经按下
    57. }
    58. if(event->key()==Qt::Key_Left)
    59. {
    60. if(event->isAutoRepeat())
    61. {
    62. return;
    63. }
    64. b_keyLeft = true;
    65. }
    66. }
    67. void MainWindow6_4::keyReleaseEvent(QKeyEvent *event)
    68. {
    69. if(event->key()==Qt::Key_Up)//向上方向键
    70. {
    71. qDebug()<currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz")<<"release:"<isAutoRepeat();
    72. qDebug()<<tr("up向上");
    73. if(event->isAutoRepeat())
    74. {
    75. return;
    76. }
    77. b_keyUp = false;
    78. if(b_move)
    79. {
    80. b_move = false;
    81. return;
    82. }
    83. if(b_keyLeft)
    84. {
    85. ui->pushButton->move(10,80);
    86. b_move= true;
    87. }
    88. else
    89. {
    90. ui->pushButton->move(120,80);
    91. }
    92. }
    93. else if(event->key()==Qt::Key_Left)
    94. {
    95. if(event->isAutoRepeat())
    96. {
    97. return;
    98. }
    99. b_keyLeft= false;
    100. if(b_move)
    101. {
    102. b_move=false;
    103. return;
    104. }
    105. if(b_keyUp)
    106. {
    107. ui->pushButton->move(10,80);//竖线左边位置
    108. b_move=true;
    109. }
    110. else
    111. {
    112. ui->pushButton->move(10,120);//竖线边位置
    113. }
    114. }
    115. else if(event->key()==Qt::Key_Down)
    116. {
    117. ui->pushButton->move(120,120);//使用向下方向键来还原按钮的位置
    118. }
    119. else if(event->modifiers()==Qt::Key_Return)
    120. {
    121. QMessageBox::information(this,"tips",tr("release您按了回车键哦"));
    122. }
    123. }

  • 相关阅读:
    【计组笔记】02_数据表示
    Halcon 3D相关案例分享
    Java中的数组,你知道多少细节?
    idea热加载,JRebel 插件是目前最好用的热加载插件,它支持 IDEA Ultimate 旗舰版、Community 社区版
    mysql 一对多查询 合并为一行数据
    赴日开发工程师是做什么的?
    Java中Spring-ssm整合的理解
    14李沐动手学深度学习v2/权重衰退简洁实现
    DDoS类型攻击对企业造成的危害
    基于微信小程序的教学教务管理系统(后台Java+SSM+MySQL)
  • 原文地址:https://blog.csdn.net/txwtech/article/details/126808682