Ich habe mal das Teil von allem Überflüsigem befreit und unten zitiert.
Mit meinem Weg ist es so:
Man markiert z.B. den
emil und klickt: {4}
Dann sortieren der Liste alphabetisch.
Nun steht der
emil an erster Stelle oben.
Klick auf
emil: {0}
Wie kann ich die Reihen nach dem Füllen der Liste intern fest indexieren?
Danke für Deine Hilfe.
Mathias
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, time
import pygtk
pygtk.require('2.0')
import gtk, gobject
class MainWin(TvXmlParser):
def __init__(self):
self.myWindow = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.myListstore = gtk.ListStore(int, str, str)
self.treeview = gtk.TreeView(self.myListstore)
self.treeview.connect("row-activated", self.Call_ListClick)
col = {
#0:['Nr',0],
1:['Time',1],
2:['Title',2]}
for key, val in col.iteritems():
tvcolumn = gtk.TreeViewColumn(val[0])
self.treeview.append_column(tvcolumn)
cell = gtk.CellRendererText()
tvcolumn.pack_start(cell, True)
tvcolumn.set_attributes(cell, text=val[1])
tvcolumn.set_sort_column_id(key)
self.myListstore.append([0, 'a','anton'])
self.myListstore.append([0, 'b','berta'])
self.myListstore.append([0, 'c','conrad'])
self.myListstore.append([0, 'd','dora'])
self.myListstore.append([0, 'e','emil'])
self.myWindow.add(self.treeview)
self.myWindow.show_all()
def Call_ListClick(self, *args):
selection = self.treeview.get_selection()
if selection.get_mode() == gtk.SELECTION_SINGLE:
model, iter = selection.get_selected()
print self.myListstore.get_path(iter)
#print model.row(iter)
if iter:
val, val1, val2 = model.get(iter, 0, 1, 2)
#print val, val1, val2
return 0
if __name__ == "__main__":
Win = MainWin()
gtk.main()