2013-11-20 4 views
2

У меня есть графический интерфейс PyQt, в котором есть выбор QPushButtons и текстовое поле QLineEdit (между прочим). Текстовое поле настроено так, чтобы вызвать функцию после returnPressed(). Моя проблема заключается в том, что когда я нажимаю на текстовое поле и помещаю текст, выбирается одна из кнопок, что означает, что при нажатии клавиши ввода в текстовом поле она активирует и кнопку, и функцию текстового поля.Выбор кнопки PyQt

Есть ли способ обойти это? Каким образом можно отключить любые кнопки при редактировании текстового поля?

Код довольно длинный, поэтому я не могу его добавить сюда, но если есть какие-либо вопросы относительно макета или что-нибудь, что может быть актуальным, пожалуйста, спросите.

Спасибо за любую помощь вы можете предложить

+0

Что вы подразумеваете под "будет выбран"? И _how_ делает кнопку «выбранным»? У вас есть обработчик, связанный с сигналом изменения текста или что-то в этом роде? – ekhumoro

+0

Он будет подсвечен. В моем коде нет ничего явного, связанного с текстовым полем, кроме подключения returnPressed к вызову функции. Кнопка становится подсвеченной, как только я нажимаю на текстовое поле – user3011077

+0

@ user3011077 размещаю некоторые разделы вашего кода, например точки, где создаются элементы управления, любые привязки и т. Д. – mbdavis

ответ

1

Вашего вопроса и комментарии, я предполагаю, что кнопки и линия редактирование находится в QDialog, и что происходит выделение/подсветка в связи с default/autoDefault свойства кнопок.

Обычно эти свойства будут установлены в False, но в QDialog они автоматически устанавливаются на True. Кнопка, которая является текущим значением по умолчанию, получает дополнительный кадр, нарисованный вокруг него (даже если у него нет фокуса клавиатуры), и активируется всякий раз, когда нажата клавиша возврата.

Вы можете, конечно, предотвратить такое поведение просто делать:

button.setDefault(False) 
button.setAutoDefault(False) 

для каждой кнопки в диалоговом окне.

+0

Это сработало отлично, спасибо! – user3011077

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