我正在使用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
--------------------
有什么想法吗?谢谢!
答案 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所建议。