我有一些要在表中显示的表格数据。我确实希望能够通过单击标题对数据进行排序。所有这些工作正常,但我不知道如何设置表的初始排序。
在下面的示例中运行数据时,将按照将其插入ListStore
的顺序显示数据,这是因为尚未选择要进行排序的特定列。但是我希望在应用启动时选择 C 列进行排序。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gtk
class TreeViewExample:
def __init__(self):
self.window = gtk.Window()
self.box = gtk.VBox()
self.window.add(self.box)
data = [
[ 10, 40, 17 ],
[ 20, 30, 14 ],
[ 30, 20, 15 ],
[ 40, 10, 19 ],
]
store = gtk.ListStore(int, int, int)
for row in data:
store.append(row)
treeView = gtk.TreeView()
treeView.set_model(store)
for i, col_name in enumerate('ABC'):
renderer = gtk.CellRendererText()
column = gtk.TreeViewColumn(col_name, renderer, text=i)
column.set_sort_column_id(i)
treeView.append_column(column)
self.box.pack_start(treeView)
self.window.show_all()
def main(self):
gtk.main()
if __name__ == "__main__":
TreeViewExample().main()
答案 0 :(得分:0)
您可以使用column.clicked()
以编程方式click列。
顺便说一句,您正在使用不推荐使用的Gtk2。请考虑将Gtk3与
一起使用import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk