2015-11-21 3 views
0

Диалоговое окно имеет три виджета: QComboBox, QLineEdit и QPushButton. Когда отображается диалог, QLineEdit по умолчанию устанавливается как «текущий». Любая введенная запись клавиатуры будет введена прямо в поле QLineEdit.QPushButton Состояние по умолчанию

Вместо QLineEdit я хочу, чтобы QPushButton был текущим. Таким образом, пользователь может нажать клавишу «Ввод» клавиатуры, чтобы запустить функцию, подключенную к QPushButton. Какой флаг или атрибут QPushButton необходимо установить для достижения этого?

+0

В дикой догадке вы можете попробовать изменить порядок вкладок или скрипку с фокусом, например. 'setFocusPolicy', чтобы этот виджет автоматически не фокусировался. – 101

+0

Вы можете попробовать изменить порядок инициализации. Или 'setTabOrder (widget1, widget2)' – 0rko

ответ

1

Если вы используете QtDesigner с QPushButton выбран перейти к Редактор свойств и перейдите к нижней части, установите По умолчанию Недвижимость проверена ИЛИ внутри вашего кода, button.setDefault(True), эта функция специально для того, что вы ищете. Посмотрите here для деталей.

0

Я полагаю, вы хотите использовать eventFilter() для обработки keyPressEvent(). Тогда Вам нужно только

self.pushButton.setFocus() 

в конструкторе QDialog и установить соответствующий eventFilter на Кнопочные

Смежные вопросы