На самом деле установка значения по умолчанию False
для всех кнопок не повлияет на . Если ни одна кнопка не была установлена по умолчанию, диалоговое окно просто выберет ее автоматически - так что всегда будет значением по умолчанию, независимо от того, что вы делаете.
Вы можете изменить это поведение, переопределив диалог keyPressEvent
:
class Dialog(QtWidgets.QDialog):
def keyPressEvent(self, event):
if ((not event.modifiers() and
event.key() == QtCore.Qt.Key_Return) or
(event.modifiers() == QtCore.Qt.KeypadModifier and
event.key() == QtCore.Qt.Key_Enter)):
event.accept()
else:
super(Dialog, self).keyPressEvent(event)
Однако следует помнить, что нажатие кнопки ввода или возврата, когда кнопка имеет фокус, все равно активирует ее как обычно. Механизм кнопки по умолчанию вступает в действие только тогда, когда какой-то другой виджет имеет фокус, но не глотает событие нажатия клавиши (например, нажатие возврата в редактировании строки).