在头文件中:
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号