PyQT5:如何使用单选按钮的状态将其变灰并禁用线编辑

时间:2019-10-17 11:21:34

标签: python pyqt pyqt5

我正在使用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 个答案:

答案 0 :(得分:2)

每当单击并更改按钮时,每个按钮都会发出toggled信号。

我将添加一个插槽,该插槽连接到下部按钮的切换信号,然后根据按钮的状态将文本框显示为灰色或启用该文本​​框。

答案 1 :(得分:1)

您可以将QLineEdit的setDisabled函数连接到QRadioButton的toggled信号:

radio_button_a.toggled.connect(line_edit.setDisabled)

之所以可行,是因为QRadioButton的toggled信号以bool的形式发射单选按钮的当前状态(请参见Qt documentation),而setDisabled()函数只使用一个{ {1}}(Qt documentation)。

此外,您还必须确保LineEdit的初始禁用状态与RadioButtons的初始检查状态相匹配。如果要对切换单选按钮采取进一步的措施,则需要编写自己的插槽(回调函数),如@GandhiGandhi所建议。