重载KeyPressEvent() 和 KeyReleaseEvent() 函数:
void CLoginDlg::keyPressEvent(QKeyEvent *event) { if(event->key() == Qt::Key_CapsLock) { if(LOBYTE(GetKeyState(VK_CAPITAL))) { mp_capsWid->show(); } else { mp_capsWid->hide(); } } QDialog::keyPressEvent(event); }
void CLoginDlg::keyReleaseEvent( QKeyEvent * event) { if(event->key() == Qt::Key_CapsLock) { if(LOBYTE(GetKeyState(VK_CAPITAL))) { mp_capsWid->show(); } else { mp_capsWid->hide(); } } QDialog::keyReleaseEvent(event); }
mp_capsWid是我自定义的提示框.
我这里调用的是GetKeyState(VK_CAPITAL)