1

我试图让一个组合框根据组合框的组合框/状态中选择的当前选项启用/禁用 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 设置为启用或禁用。

任何帮助将不胜感激!

4

1 回答 1

3

创建另一个函数,并将组合框连接到它。但是不要使用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索引发送到函数。然后将其转换为trueor false。然后 Python 将转换0false(启用QLineEdit),并且所有其他索引都是true.

于 2013-06-12T19:54:00.797 回答