2012-08-28 19 views
2

我怎樣才能連接到CellRendererCombo的PyGTK:如何將項目在liststore關聯CellRendererCombo

cellrenderer_combo = gtk.CellRendererCombo() 
... 
liststore = gtk.ListStore(str) 
    item_list = ["Item1", "Item2", "Item3", "Item4", "Item5", "Item6"] 
    for item in item_list: 
     liststore.append([item]) 

self.cellrenderer_combo.set_property("model", self.liststore) 

我怎樣才能在降序排列Liststore的「項目」排序中ListStore對項目進行排序排序???

在此先感謝。 :)

回答

2

如果項目不會改變,那就是你將它們添加到列表商店之前對它們進行排序:

item_list = ['These', 'items', 'are', 'not', 'going', 'to', 'change'] 
item_list.sort(reverse=True) 

如果項目要改變,你希望讓他們在整理組合框,然後使用gtk.TreeModelSort

sorted = gtk.TreeModelSort(liststore) 
self.cellrenderer_combo.props.model = self.liststore 
+0

組合框中的項目是動態的。所以gtk.TreeModelSort會做。但如何按「降序」排序呢? – ani

+2

[gtk.TreeSortable.set_sort_column_id()](http://www.pygtk.org/docs/pygtk/class-gtktreesortable.html#method-gtktreesortable--set-sort-column-id)允許您選擇升序或降序排序。 – ptomato

+0

這是有效的。謝謝。 :) – ani

相關問題