Qt 防止Enter键触发QButtonBox中的OK,特别是QLineEdit QButtonBox

Qt 防止Enter键触发QButtonBox中的OK,特别是QLineEdit QButtonBox,qt,Qt,我有一个对话框,其中有一些小部件,如QComboBox,QSpinBox和一些QLineEdit。在小部件的底部,我有一个QButtonBox。在任何一个小部件中单击enter将触发QButtonBox的accepted()插槽。但是,我想在其中一个QLineEdits中禁用此自动操作。因此,在其中一个QLineEdit中按Enter键不会触发QButtonBox的accepted()插槽。我该怎么做呢?我建议您安装一个。比如: bool FilterObject::eventFilter(Q

我有一个对话框,其中有一些小部件,如
QComboBox
QSpinBox
和一些
QLineEdit
。在小部件的底部,我有一个
QButtonBox
。在任何一个小部件中单击enter将触发
QButtonBox
accepted()
插槽。但是,我想在其中一个
QLineEdits
中禁用此自动操作。因此,在其中一个
QLineEdit
中按
Enter
键不会触发
QButtonBox
accepted()
插槽。我该怎么做呢?

我建议您安装一个。比如:

 bool FilterObject::eventFilter(QObject *object, QEvent *event)
 {
     if (object == target && event->type() == QEvent::KeyPress) {
         QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
         if (keyEvent->key() == Qt::Key_Enter) {
             // Special key handling
             return true;
         } else
             return false;
     }
     return false;
 }
bool FilterObject::eventFilter(QObject*object,QEvent*event)
{
if(object==target&&event->type()==QEvent::KeyPress){
QKeyEvent*keyEvent=静态广播(事件);
如果(keyEvent->key()==Qt::key\u Enter){
//特殊密钥处理
返回true;
}否则
返回false;
}
返回false;
}