PyQT5: как выделить серым цветом и деактивировать редактирование строки с состоянием переключателя - PullRequest
1 голос
/ 17 октября 2019

Я использую PyQt5, и я хотел бы сделать серым и сделать редактирование строки неактивным, когда переключатель переключается.

1st state (default)

(o) A

( ) B

--------------------
|///////////////////|      <- Line edit inactive and greyed out, no input allowed (default state)
--------------------


2nd state

( ) A

(o) B

--------------------
|                  |      <- Line edit active input allowed 
--------------------

Есть идеи? спасибо!

Ответы [ 2 ]

2 голосов
/ 17 октября 2019

Каждая кнопка генерирует сигнал toggled при каждом нажатии и изменении.

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

1 голос
/ 17 октября 2019

Вы можете подключить функцию QLineEdit setDisabled к сигналу toggled QRadioButton:

radio_button_a.toggled.connect(line_edit.setDisabled)

Это работает, потому что сигнал toggled QRadioButton излучает текущее состояние переключателя как bool (см. документация Qt ), а функция setDisabled() занимает ровно один bool ( документация Qt ).

Дополнительно вам придется сделатьубедитесь, что начальное отключенное состояние LineEdit совпадает с начальным состоянием проверки ваших кнопок RadioButton. Если вы хотите предпринять дальнейшие действия по переключению RadioButton, вам нужно написать собственный слот (функция обратного вызова), как предложено @ GandhiGandhi.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...