在頭文件中:
void keyPressEvent(QKeyEvent *event);
cpp 文件中
void SamSet::keyPressEvent(QKeyEvent * event) { // 普通鍵 qDebug(" %d iSelcet=%d\r\n",event->key(),iSelcet); switch (event->key()) { // ESC鍵 case Qt::Key_Return: break; case Qt::Key_Down: iSelcet++; if(iSelcet>4) iSelcet=4; keyDownFlag(iSelcet); break; case Qt::Key_Up: iSelcet--; if(iSelcet<0) iSelcet=0; keyDownFlag(iSelcet); break; case Qt::Key_Escape: this->close(); break; } }
運行后,按上下左右鍵都沒反應,原來是方向鍵的問題
加入:
setFocusPolicy(Qt::StrongFocus);
運行后,需要點擊很多下才有反應
然后把界面上的所有控件全部設置成NoFocus,界面設置成StrongFocus就可以
在界面設計里,屬性有個focousPolicy 下拉列表選擇即可
浙公網安備 33010602011771號