我正在尝试让组合框启用/禁用line_edit项目,该项目基于在组合框的组合框/状态中选择的当前选项。
这是我到目前为止最接近的
self.combobox_widget.activated.connect(self.line_edit_widget.setDisabled)
但是,这仅在组合框中的第一个选项是需要启用line_edit的选项时才有效,并且还为每个其他选项禁用line_edit。
我想得到它以便我可以有多个选项禁用line_edit并有多个选项启用line_edit。
我一直在查找来自http://pyqt.sourceforge.net/Docs/PyQt4/classes.html的课程信息和方法信息 但是还没有能够得到任何其他工作。
我知道基本的想法是连接到组合框,监听通过更改状态生成的信号,然后根据与发送的信号关联的值将line_edit设置为启用或禁用。
非常感谢任何帮助!
答案 0 :(得分:2)
创建另一个函数,并将组合框连接到它。不要使用activated
,请使用currentIndexChanged
,因为如果index
没有更改,您就不需要做任何事情。
def comboBoxIndexChanged(index):
#Do something based on the index
if somethingBasedOnTheIndex:
self.line_edit_widget.setEnabled(true)
else:
self.line_edit_widget.setEnabled(false)
它的行为原因是因为activated
信号正在向函数发送QComboBox
索引。然后将其投放到true
或false
。然后,Python将0
转换为false
(启用QLineEdit
),其他每个索引都为true
。