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

时间:2011-04-13 09:03:46

标签: qt

我有一个Dialog,其中包含一些小部件,例如QComboBoxQSpinBox和一些QLineEdit。在窗口小部件的底部,我有一个QButtonBox。单击任何一个小部件中的Enter将触发accepted()的{​​{1}}位置。但是,我想在其中一个QButtonBox中禁用此自动操作。因此,在其中一个QLineEdits中按Enter键不会触发QLineEdit的{​​{1}}个广告位。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

我建议您安装EventFilter。类似的东西:

 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;
 }