QT学习之路————重写键盘事件

这篇博客详细介绍了在QT环境下如何创建GUI工程,并着重讲解了如何在头文件和cpp文件中重写键盘事件,以实现自定义的键盘响应功能。同时,列举了一些常用的键值供开发者参考。
摘要由CSDN通过智能技术生成

1、新建Gui工程

在.ui文件中加入两个按钮,分别重命名为BJ、BX

2、在头文件中添加:

#include <QKeyEvent>
protected:
    void keyPressEvent(QKeyEvent * e);

3、在.cpp中重写键盘事件

void Dialog::keyPressEvent(QKeyEvent *e)
{
    if(e->key()==Qt::Key_4)<span style="white-space:pre">	</span>//QT::Key_4 位数字键4的键值,如果按下4,那么执行if语句里的代码
        ui->BJ->setFocus();<span style="white-space:pre">	</span>//设置焦点
    if(e->key()==Qt::Key_6)
        ui->BX->setFocus();
}
 
 

4、常用键值

"Esc",/*Qt::Key_Escape 0x01000000 */
"Tab",/*Qt::Key_Tab 0x01000001 */
"Shift+Tab",/*Qt::Key_Backtab 0x01000002 */
"BackSpace",/*Qt::Key_Backspace 0x01000003 */
"Return",/*Qt::Key_Return 0x01000004 */
"Enter",/*Qt::Key_Enter 0x01000005 Typically located on the keypad.*/
"Ins",/*Qt::Key_Insert 0x01000006 */
"Del",/*Qt::Key_Delete 0x01000007 */
"Pause",/*Qt::Key_Pause 0x01000008 The Pause/Break key (Note: Not anything to do with pausing media)*/
 
"Print",/*Qt::Key_Print 0x01000009 */
"SysReq",/*Qt::Key_SysReq 0x0100000a */
"Clear",/*Qt::Key_Clear 0x0100000b */
 
"Home",/*Qt::Key_Home 0x01000010 */
"End",/*Qt::Key_End 0x01000011 */
"Left",/*Qt::Key_Left 0x01000012 */
"Up",/*Qt::Key_Up 0x01000013 */
"Right",/*Qt::Key_Right 0x01000014 */
"Down",/*Qt::Key_Down 0x01000015 */
"PgUp",/*Qt::Key_PageUp 0x01000016 */
"PgDown",/*Qt::Key_PageDown 0x01000017 */
"Shift",/*Qt::Key_Shift 0x01000020 */
#ifdef Q_OS_WIN
"Ctrl",/*Qt::Key_Control 0x01000021 On Mac OS X, this corresponds to the Command keys.*/
"Win",/*Qt::Key_Meta 0x01000022 On Mac OS X, this corresponds to the Control keys. On Windows keyboards, this key is mapped to the Windows key.*/
#else
"Control",/*Qt::Key_Meta 0x01000022 On Mac OS X, this corresponds to the Control keys. On Windows keyboards, this key is mapped to the Windows key.*/
#endif
"Alt",/*Qt::Key_Alt 0x01000023 */
"Ctrl+Alt+",/*Qt::Key_AltGr 0x01001103 On Windows, when the KeyDown event for this key is sent, the Ctrl+Alt modifiers are also set.*/
"CapsLock",/*Qt::Key_CapsLock 0x01000024 */
"NumLock",/*Qt::Key_NumLock 0x01000025 */
"ScrollLock",/*Qt::Key_ScrollLock 0x01000026 */
 
"F1",/*Qt::Key_F1 0x01000030 */
"F2",/*Qt::Key_F2 0x01000031 */
"F3",/*Qt::Key_F3 0x01000032 */
"F4",/*Qt::Key_F4 0x01000033 */
"F5",/*Qt::Key_F5 0x01000034 */
"F6",/*Qt::Key_F6 0x01000035 */
"F7",/*Qt::Key_F7 0x01000036 */
"F8",/*Qt::Key_F8 0x01000037 */
"F9",/*Qt::Key_F9 0x01000038 */
"F10",/*Qt::Key_F10 0x01000039 */
"F11",/*Qt::Key_F11 0x0100003a */
"F12",/*Qt::Key_F12 0x0100003b */
"F13",/*Qt::Key_F13 0x0100003c */
"F14",/*Qt::Key_F14 0x0100003d */
"F15",/*Qt::Key_F15 0x0100003e */
"F16",/*Qt::Key_F16 0x0100003f */
"F17",/*Qt::Key_F17 0x01000040 */
"F18",/*Qt::Key_F18 0x01000041 */
"F19",/*Qt::Key_F19 0x01000042 */
"F20",/*Qt::Key_F20 0x01000043 */
"F21",/*Qt::Key_F21 0x01000044 */
"F22",/*Qt::Key_F22 0x01000045 */
"F23",/*Qt::Key_F23 0x01000046 */
"F24",/*Qt::Key_F24 0x01000047 */
"F25",/*Qt::Key_F25 0x01000048 */
/* F25 .. F35 only on X11*/
"F26",/*Qt::Key_F26 0x01000049 */
"F27",/*Qt::Key_F27 0x0100004a */
"F28",/*Qt::Key_F28 0x0100004b */
"F29",/*Qt::Key_F29 0x0100004c */
"F30",/*Qt::Key_F30 0x0100004d */
"F31",/*Qt::Key_F31 0x0100004e */
"F32",/*Qt::Key_F32 0x0100004f */
"F33",/*Qt::Key_F33 0x01000050 */
"F34",/*Qt::Key_F34 0x01000051 */
"F35",/*Qt::Key_F35 0x01000052 */
/* extra keys */
"",/*Qt::Key_Super
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值