有时候在程序中为QAction设置组合键比如Ctrl+Enter等等等,发现没有效果,但是单独按Ctrl或者Enter是有效的。
导致这种问题的原因之一可能如下:
重载了keyPressEvent函数,在该函数中,做了如下分支判断:
void MyWidget::keyPressEvent(QKeyEvent *event)
{
//......
else if(event->key() == Qt::Key_Enter){
//to do ...
}
else if(event->key() == Qt::Key_Enter && (event->modifiers()&Qt::ControlModifier))
{
//to do ...
}
}
原因就是先处理了enter按键的逻辑,把上面两个else if分支调换位置即可。