rendered paste body#!/usr/bin/pythonimport pygtkpygtk.require('2.0')import gobjectimport gtkimport gtk.gladeclass MyTree: ( COLUMN_NAME, COLUMN_EMAIL, ) = range(2) def __init__(self, treeview): self.model = gtk.TreeStore(gobject.TYPE_STRING, \ gobject.TYPE_STRING) self.treeview = treeview self.add_columns() def add_data(self, data): iter = None for item in data: iter = self.model.append(iter) self.model.set(iter, \ self.COLUMN_NAME, item[0], \ self.COLUMN_EMAIL,item[1]) def add_columns(self): renderer = gtk.CellRendererText() column = gtk.TreeViewColumn('Name', renderer, text=self.COLUMN_NAME, editable=False) column.set_clickable(True) column.set_sizing(gtk.TREE_VIEW_COLUMN_AUTOSIZE) self.treeview.append_column(column) column = gtk.TreeViewColumn('E-mail', renderer, text=self.COLUMN_EMAIL, editable=False) column.set_clickable(True) column.set_sizing(gtk.TREE_VIEW_COLUMN_AUTOSIZE) self.treeview.append_column(column)class HelloWorld: def __init__(self): gladefile="project1.glade" windowname="window1" self.wTree = gtk.glade.XML(gladefile, windowname) dic = { "on_button1_clicked" : self.button1_clicked, \ "on_window1_destroy" : (gtk.main_quit) } self.wTree.signal_autoconnect(dic) tree = MyTree(self.wTree.get_widget('treeview1')) data = [['luiz', 'luizribeiro@gmail.com'], \ ['ana', 'ananutripuc@bol.com.br']] tree.add_data(data) return def button1_clicked(self, widget): data = [self.wTree.get_widget('entry1').get_text(), \ self.wTree.get_widget('entry2').get_text()] # inserir return def main(self): gtk.main()if __name__ == "__main__": hello = HelloWorld() hello.main()"""The contents of project1.glade:<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--><!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"><glade-interface><widget class="GtkWindow" id="window1"> <property name="border_width">10</property> <property name="visible">True</property> <property name="title" translatable="yes">Names</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">False</property> <property name="resizable">False</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <signal name="destroy" handler="on_window1_destroy" last_modification_time="Sat, 04 Jun 2005 19:48:28 GMT"/> <child> <widget class="GtkFixed" id="fixed1"> <property name="visible">True</property> <child> <widget class="GtkEntry" id="entry1"> <property name="width_request">184</property> <property name="height_request">16</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> </widget> <packing> <property name="x">56</property> <property name="y">0</property> </packing> </child> <child> <widget class="GtkEntry" id="entry2"> <property name="width_request">184</property> <property name="height_request">16</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> </widget> <packing> <property name="x">56</property> <property name="y">24</property> </packing> </child> <child> <widget class="GtkLabel" id="label1"> <property name="width_request">56</property> <property name="height_request">16</property> <property name="visible">True</property> <property name="label" translatable="yes">Name:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="x">0</property> <property name="y">0</property> </packing> </child> <child> <widget class="GtkLabel" id="label2"> <property name="width_request">56</property> <property name="height_request">16</property> <property name="visible">True</property> <property name="label" translatable="yes">E-mail:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="x">0</property> <property name="y">24</property> </packing> </child> <child> <widget class="GtkTreeView" id="treeview1"> <property name="width_request">304</property> <property name="height_request">192</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="headers_visible">True</property> <property name="rules_hint">True</property> <property name="reorderable">True</property> <property name="enable_search">True</property> </widget> <packing> <property name="x">0</property> <property name="y">48</property> </packing> </child> <child> <widget class="GtkButton" id="button1"> <property name="width_request">56</property> <property name="height_request">40</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Insert</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="on_button1_clicked" last_modification_time="Sat, 04 Jun 2005 20:04:00 GMT"/> </widget> <packing> <property name="x">248</property> <property name="y">0</property> </packing> </child> </widget> </child></widget></glade-interface>"""