treemodelsort.py
来自「pygtk的教程」· Python 代码 · 共 76 行
PY
76 行
#!/usr/bin/env python# example treemodelsort.pyimport pygtkpygtk.require('2.0')import gtkimport randomclass TreeModelSortExample: # close the window and quit def delete_event(self, widget, event, data=None): gtk.main_quit() return False def add_row(self, b): rand = self.rand # add a row of random ints i0 = self.w[0].sm.get_model().append([rand.randint(0, 1000), rand.randint(0, 1000000), rand.randint(-10000, 10000)]) # select the new row in each view for n in range(3): sel = self.w[n].tv.get_selection() i1 = self.w[n].sm.convert_child_iter_to_iter(None, i0) sel.select_iter(i1) def __init__(self): # create a liststore with three int columns self.liststore = gtk.ListStore(int, int, int) # create a random number generator self.rand = random.Random() # Create new windows self.w = [None] * 3 for n in range(3): self.w[n] = gtk.Window(gtk.WINDOW_TOPLEVEL) win = self.w[n] win.set_title("TreeModelSort Example %i" % n) win.set_size_request(220, 200) win.connect("delete_event", self.delete_event) win.vbox = gtk.VBox() win.add(win.vbox) win.sw = gtk.ScrolledWindow() win.sm = gtk.TreeModelSort(self.liststore) # Set sort column win.sm.set_sort_column_id(n, gtk.SORT_ASCENDING) win.tv = gtk.TreeView(win.sm) win.vbox.pack_start(win.sw) win.b = gtk.Button('Add a Row') win.b.connect('clicked', self.add_row) win.vbox.pack_start(win.b, False) win.sw.add(win.tv) win.tv.column = [None]*3 win.tv.column[0] = gtk.TreeViewColumn('0-1000') win.tv.column[1] = gtk.TreeViewColumn('0-1000000') win.tv.column[2] = gtk.TreeViewColumn('-10000-10000') win.tv.cell = [None]*3 for i in range(3): win.tv.cell[i] = gtk.CellRendererText() win.tv.append_column(win.tv.column[i]) win.tv.column[i].set_sort_column_id(i) win.tv.column[i].pack_start(win.tv.cell[i], True) win.tv.column[i].set_attributes(win.tv.cell[i], text=i) win.show_all()def main(): gtk.main()if __name__ == "__main__": tmsexample = TreeModelSortExample() main()
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?