pyqt - 基于状态启用/禁用line_edit项目的组合框项目

时间:2013-06-12 18:57:41

标签: python pyqt

我正在尝试让组合框启用/禁用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设置为启用或禁用。

非常感谢任何帮助!

1 个答案:

答案 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索引。然后将其投放到truefalse。然后,Python将0转换为false(启用QLineEdit),其他每个索引都为true