PyGTK - CellRendererCombo没有保留新选择的值

时间:2016-05-10 16:40:02

标签: python user-interface pygtk gtk3

我正在尝试创建一个简单的列表存储程序,其中一个给定行中的值(列)能够通过下拉选择进行更改。我已经得到了下拉行,但是,我无法将新值提交给列作为活动值。

http://python-gtk-3-tutorial.readthedocs.io/en/latest/cellrenderers.html使用PyGtk教程,我看到他们使用

def __init__
    renderer_combo = Gtk.CellRendererCombo()
    renderer_combo.set_property("editable", True)
    renderer_combo.set_property("model", liststore_manufacturers)
    renderer_combo.set_property("text-column", 0)
    renderer_combo.set_property("has-entry", False)
    renderer_combo.connect("edited", self.on_combo_changed)

...

def on_combo_changed(self, widget, path, text):
    self.liststore_hardware[path][1] = text

将此代码复制到我的解释器中,并查看可以成功更改ComboBox值的程序,我尝试复制他们的方法。这导致我创建以下内容:

def __init__

    ...

    self.col_priorityrenderer = Gtk.CellRendererCombo()
    self.col_priorityrenderer.set_property("editable", True)
    self.col_priorityrenderer.set_property("model", liststore_manufacturers)
    self.col_priorityrenderer.set_property("text-column", 0)
    self.col_priorityrenderer.set_property("has-entry", False)
    self.col_priorityrenderer.connect("edited", self.on_combo_changed)

    priorityCombo = Gtk.ListStore(str)
    priorityCombo.append(["Top"])
    priorityCombo.append(["High"])
    priorityCombo.append(["Medium"])
    priorityCombo.append(["Low"])
    self.col_priority_renderer.set_property("model", priorityCombo)

def on_combo_changed(self, widget, path, text):
    model = widget.get_property("model")
    model[path][1] = text

使用此代码,我收到错误:

IndexError: column index is out of bounds: 1

我已将1更改为0,并且我没有收到该错误,但它也不会更改活动项目。我已经尝试了大约3天来绕过如何让这个正常工作无济于事。为什么在这种情况下索引1超出界限?

0 个答案:

没有答案
相关问题