QT键盘消息
2022/9/8 23:54:45
本文主要是介绍QT键盘消息,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
相对鼠标消息, 键盘消息显得要容易些.
主要是继承并实现这两个函数
virtual void keyReleaseEvent(QKeyEvent * event); virtual void keyPressEvent(QKeyEvent * event);
我在这两个函数里加了些代码,让用户的按键状态在状态栏中显示出来
void MainWindow::keyPressEvent(QKeyEvent * event) { QString strMessage = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss:zzz"); strMessage += " keyPressEvent "; if (event->modifiers() & Qt::ControlModifier) { strMessage += " ctrl"; } if (event->modifiers() & Qt::ShiftModifier) { strMessage += " shift"; } if (event->modifiers() & Qt::AltModifier) { strMessage += " alt"; } qDebug() << hex << event->key() << endl; if ( (0 == event->key()) || ( Qt::Key_unknown == event->key()) || event->key() > Qt::Key_Escape) { strMessage += " no_key"; }else { strMessage += " key="; strMessage += QChar(event->key()); } ui->statusBar->showMessage(strMessage); } void MainWindow::keyReleaseEvent(QKeyEvent * event) { QString strMessage = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss:zzz"); strMessage += " keyReleaseEvent "; if (event->modifiers() & Qt::ControlModifier) { strMessage += " ctrl"; } if (event->modifiers() & Qt::ShiftModifier) { strMessage += " shift"; } if (event->modifiers() & Qt::AltModifier) { strMessage += " alt"; } qDebug() << hex << event->key() << endl; if ( (0 == event->key()) || ( Qt::Key_unknown == event->key()) || event->key() > Qt::Key_Escape ) { strMessage += " no_key"; }else { strMessage += " key="; strMessage += QChar(event->key()); } ui->statusBar->showMessage(strMessage); }
值得注意的是,假如我只按一个CTRL键,event->key()的值是1000021
按我的理解,event->key()应该是是0或者Qt::Key_unknown,表示没有键按下参考QT文档
int QKeyEvent::key() const
最终,我觉得,如果event->key()的值大于0x1000000,就认为没有实际的键按下:
if ( (0 == event->key()) || ( Qt::Key_unknown == event->key()) || event->key() > Qt::Key_Escape) { strMessage += " no_key"; }else { strMessage += " key="; strMessage += QChar(event->key()); }
Key_Escape的值定义如下:
Key_Escape = 0x01000000, // misc keys
代码见: http://q1024.com/files/qt_window-master.zip 000700目录
这篇关于QT键盘消息的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行
- 2024-05-08阿里云域名注册流程,分享给第一次购买域名的新手站长!