[Python-de] Re: GTKs TreeView

Walter Haslbeck news at badblocks.de
Mon Feb 16 21:07:47 CET 2004


Marcus Habermehl <bmh1980de at yahoo.de> wrote:

> Wie bekomme ich in so einem Fall die Einträge
> 
> [Zeile0-Spalte0]
> [Zeile1-Spalte0] usw.

Mir ist nicht ganz klar was du willst. Trifft das folgende Programm in etwa
deine Vorstellungen? (Es handelt sich um ein etwas modifiziertes list_store.py)

================================================================================
#!/usr/bin/env python

import gobject
import gtk
import os
from gtk import TRUE, FALSE

def create_model():
    store = gtk.ListStore(gobject.TYPE_STRING)
    pipe = os.popen('rpm -qa | sort')
    item = pipe.readline()
    while item:
	iter = store.append()
	store.set(iter, 0, item)
	item = pipe.readline()
    pipe.close()
    return store
	
def add_columns(treeview):
    model = treeview.get_model()
    column = gtk.TreeViewColumn('Paket', gtk.CellRendererText(), text=0)
    treeview.append_column(column)
    
def main():
    win = gtk.Window()
    win.connect('destroy', lambda win: gtk.main_quit())
    win.set_title('GUI Paketmanager')
    win.set_border_width(8)
    vbox = gtk.VBox(FALSE, 8)
    win.add(vbox)
    label = gtk.Label('installed Software')
    vbox.pack_start(label, FALSE, FALSE)
    sw = gtk.ScrolledWindow()
    sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
    sw.set_policy(gtk.POLICY_NEVER,
                   gtk.POLICY_AUTOMATIC)
    vbox.pack_start(sw)
    model = create_model()
    treeview = gtk.TreeView(model)
    sw.add(treeview)
    add_columns(treeview)
    win.set_default_size(280, 250)
    win.show_all()
    gtk.main()
                                     
if __name__ == '__main__':
    main()
================================================================================

Walter