如何允许在Gtk.ListStore中对多列进行排序

时间:2012-11-01 20:58:53

标签: python gtk3

我有一个适用于Gtk3 Listore的以下设置。

    self.liststore = Gtk.ListStore(str, str, bool)
    treeview = Gtk.TreeView(model=self.liststore)

    renderer_text = CellRendererText()
    column_text = Gtk.TreeViewColumn("Media URL", renderer_text, text=0)
    treeview.append_column(column_text)


    column_date = Gtk.TreeViewColumn("Date", renderer_text, text=1)
    column_date.pack_start(renderer_text, True)
    treeview.append_column(column_date)


    renderer_toggle = Gtk.CellRendererToggle()
    renderer_toggle.connect("toggled", self.on_cell_toggled)
    column_toggle = Gtk.TreeViewColumn("Toggle", renderer_toggle, active=2)
    treeview.append_column(column_toggle)

    self.treeview = treeview
    self.scrolledwindow.add(self.treeview)

我尝试添加:

     column_text.set_sort_column_id(0)
     self.liststore.set_sort_func(0,self.compare, None)

这会导致崩溃,但是根据这里的文档:http://python-gtk-3-tutorial.readthedocs.org/en/latest/treeview.html应该有效,但只有在self.liststore.set_sort_func(0,self.compare)中将0替换为0时它才有效,无)我可以单击“媒体”列对内容进行排序。

      self.liststore.set_sort_func(1,self.compare, None)

问题:这是正确的还是这是奇怪的还是文档错误而且模型中的索引不是从文档中的0开始的?

但是,我需要帮助以允许通过Date列进行排序。我试过添加:

       column_date.set_sort_column_id(0)
       self.liststore.set_sort_func(1,self.compare, None)

但这样做会因崩溃而失败。

0 个答案:

没有答案