Hi,

You could even handle everything in your button 'clicked' handler,
see below.

mvg,
Dieter

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import pygtk
pygtk.require('2.0')
import gtk


class BasicTreeViewExampleWindow(gtk.Window):
    __gtype_name__ = 'MyBasictreeViewExampleWindow'

    def __init__(self):
        gtk.Window.__init__(self)

        self.set_title('Music Collection')
        self.set_size_request(500, 200)

        vbox = gtk.VBox()
        self.add(vbox)

        # create liststore
        self.liststore = gtk.ListStore(str, str)
self.liststore.append(['acdc - highway to hell', '$MUSIC\acdc\highway']) self.liststore.append(['Saxon - inner sanctum', '$MUSIC\saxon\inner']) self.liststore.append(['Gun - Greatest Hist', '$MUSIC\gun\greatest_hits']) self.liststore.append(['ABC - Look of love', '$music\abc\look_of_love'])

        # create treeview using liststore
        self.treeview = gtk.TreeView(self.liststore)
        self.treeview.set_headers_visible(False)
        self.treeview.set_search_column(0)
        self.treeview.set_reorderable(False)

        treeselection = self.treeview.get_selection()
        treeselection.set_mode(gtk.SELECTION_MULTIPLE)

        tvcolumn = gtk.TreeViewColumn()
        cell = gtk.CellRendererText()
        tvcolumn.pack_start(cell, True)
        tvcolumn.add_attribute(cell, 'text', 0)
        self.treeview.append_column(tvcolumn)
        vbox.pack_start(self.treeview, expand=True, fill=True)

        button  = gtk.Button('click here')
        button.connect('clicked', self.on_button_clicked)
        vbox.pack_start(button, expand=False, fill=True)

    def on_button_clicked(self, widget, data=None):
        selection = self.treeview.get_selection()
        model, selection = selection.get_selected_rows()

        print 'selected row(s):'

        for path in selection:
            iter = model.get_iter(path)

            if iter is not None:
print '%s (%s)' % (model.get_value(iter, 0), model.get_value(iter, 1))


def quit(widget, event):
    gtk.main_quit()

def main():
    examplewindow = BasicTreeViewExampleWindow()
    examplewindow.connect('delete_event', quit)
    examplewindow.show_all()
    gtk.main()

if __name__ == '__main__':
    main()


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to