Robert Palmqvist schrieb: > I wanted to take a look at the source for gtk.Dialog to se if I could > mimic the “run” method from a gtk.Window but I never found the actual > source for gtk.Dialog.run().
The source is here: http://git.gnome.org/cgit/gtk+/tree/gtk/gtkdialog.c#n993 > Where can I find examples of best practise to implement and handle more > than one window (more than one gtk.Window, not the use of one > gtk.Window and additional windows realized with the use of gtk.Dialog or > its sub-classes) in a pygtk application (I can’t find any examples in > the documentation, the tutorial or the FAQ, am I missing something > obvious here?)? Example: -----------------------8<----------------------- import gtk class SecondWin: def __init__ (self, parent): self.parent = parent self.w = gtk.Window () # Disable interaction with parent self.w.set_modal (True) # Tell WM this is a dialog self.w.set_type_hint (gtk.gdk.WINDOW_TYPE_HINT_DIALOG) # Tell WM this window belongs to parent self.w.set_transient_for (parent) self.w.connect ("delete-event", self.hide) box = gtk.VButtonBox () self.w.add (box) b = gtk.Button (stock=gtk.STOCK_CLOSE) b.connect ("clicked", self.hide) box.add (b) def show (self): self.w.show_all () # Indicate visually that interaction with parent # is not possible while we are shown self.parent.set_sensitive (False) def hide (self, *args): # Indicate visually that interaction with parent # is possible again self.parent.set_sensitive (True) self.w.hide () return True class MainWin: def __init__ (self): self.w = gtk.Window () self.w.set_position (gtk.WIN_POS_CENTER) self.w.connect ("delete-event", gtk.main_quit) box = gtk.VButtonBox () self.w.add (box) self.sw = SecondWin (self.w) b = gtk.Button ("show second win") b.connect ("clicked", self.show_second_win, self.sw) box.pack_start (b, False) b = gtk.Button (stock=gtk.STOCK_QUIT) b.connect ("clicked", gtk.main_quit) box.pack_start (b, False) def run (self): self.w.show_all () gtk.main () def show_second_win (self, button, w): w.show () w = MainWin () w.run () ----------------------->8----------------------- HTH. _______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
