[pygtk] Why does autoconnect(self) not catch delete_event?
John Finlay
finlay at moeraki.com
Fri May 28 07:43:11 WST 2004
Jonathon McKitrick wrote:
>Here is my code. All of the signal handlers work correctly when I use the
>autoconnect(self) call except main_quit, called on the destroy event. What is
>wrong?
>
>
>#!/usr/bin/env python
>
>import gsettingsdlg
>import pygtk; pygtk.require('2.0')
>import gtk
>import gtk.glade
>
>data = [['1', 'test item', 'description'],
> ['2', 'test item', 'description'],
> ['3', 'test item', 'description'],
> ['4', 'test item', 'description'],
> ['5', 'test item', 'description']]
>
>class MainWindow:
> def __init__(self):
> gladefile = 'glade/accountsgui.glade'
> windowname = 'mainwindow'
> self.wTree = gtk.glade.XML(gladefile, windowname)
>
> d = { 'on_mainwindow_delete_event' : gtk.main_quit,
> 'on_listviewmain_select_cursor_row' :
> self.on_listviewmain_select_cursor_row,
> 'on_listviewmain_row_activated' :
> self.on_listviewmain_row_activated,
> 'on_listviewmain_cursor_changed' :
> self.on_listviewmain_cursor_changed,
> }
>
># self.wTree.signal_autoconnect(self)
> self.wTree.signal_autoconnect(d)
>
> self.make_view()
># self.view = self.make_view(liststore)
>
> def on_mainwindow_delete_event(self, event, param):
> print 'got delete event'
> gtk.main_quit
>
should be: gtk.main_quit()
>
> def on_mainwindow_destroy(self, *params):
> print 'got destroy event'
> gtk.main_quit
>
ditto
>
># def make_view(self, model):
> def make_view(self):
>
> liststore = gtk.ListStore(str, str, str)
> for item in data:
> iter = liststore.append()
> liststore.set(iter,
> 0, item[0],
> 1, item[1],
> 2, item[2])
>
>
> view = self.wTree.get_widget('listviewmain')
> view.set_model(liststore)
>
> renderer = gtk.CellRendererText()
> column = gtk.TreeViewColumn('Column1', renderer, text=0)
> view.append_column(column)
>
> renderer = gtk.CellRendererText()
> column = gtk.TreeViewColumn('Column2', renderer, text=1)
> view.append_column(column)
>
> renderer = gtk.CellRendererText()
> column = gtk.TreeViewColumn('Column2', renderer, text=2)
> view.append_column(column)
>
> def on_listviewmain_select_cursor_row(self, listview, edit, *param):
> sel = listview.get_selection()
> model, iter = sel.get_selected()
> val = model.get_value(iter, 0)
> print 'row selected: %s' % val
> sb = self.wTree.get_widget('statusbarmain')
> id = sb.get_context_id('main')
> sb.push(id, 'row selected: %s' % val)
>
> def on_listviewmain_row_activated(self, listview, path, column):
> sel = listview.get_selection()
> model, iter = sel.get_selected()
> val = model.get_value(iter, 0)
> print 'row activated: %s' % val
> sb = self.wTree.get_widget('statusbarmain')
> id = sb.get_context_id('main')
> sb.push(id, 'row activated: %s' % val)
>
> def on_listviewmain_cursor_changed(self, listview):
> sel = listview.get_selection()
> model, iter = sel.get_selected()
> val = model.get_value(iter, 0)
> print 'row changed: %s' % val
> sb = self.wTree.get_widget('statusbarmain')
> id = sb.get_context_id('main')
> sb.push(id, 'row changed: %s' % val)
>
> def settings(self):
> gsettingsdlg.SettingsDlg()
>
>if __name__ == '__main__':
> m = MainWindow()
># m.settings()
> gtk.main()
>
>jm
>
>
More information about the pygtk
mailing list