- #!/usr/bin/env python
- import pygtk
- pygtk.require('2.0')
- import gtk
- class HelloWorld:
- # This is a callback function. The data arguments are ignored
- # in this example. More on callbacks below.
- def hello(self, widget, data=None):
- print "Hello World"
- def delete_event(self, widget, event, data=None):
- # If you return FALSE in the "delete_event" signal handler,
- # GTK will emit the "destroy" signal. Returning TRUE means
- # you don't want the window to be destroyed.
- # This is useful for popping up 'are you sure you want to quit?'
- # type dialogs.
- print "delete event occured"
- # Change FALSE to TRUE and the main window will not be destroyed
- # with a "delete_event".
- return False
- def destroy(self, widget, data=None):
- print "destroy signal occcured"
- gtk.main_quit()
- def init(self):
- # create a new window
- self.window = gtk.window(gtk.WINDOW_TOPLEVEL)
- # When the window is given the "delete_event" signal (this is given
- # by the window manager, usually by the "close" option, or on the
- # titlebar), we ask it to call the delete_event () function
- # as defined above. The data passed to the callback
- # function is NULL and is ignored in the callback function.
- self.window.connect("delete_event", self.delete_event)
- # Here we connect the "destroy" event to a signal handler.
- # This event occurs when we call gtk_widget_destroy() on the window,
- # or if we return FALSE in the "delete_event" callback.
- self.window.connect("destroy", self.destroy)
- # Sets the border width of the window
- self.window.set_border_width(10)
- # Creates a new button with the label "Hello World."
- self.button = gtk.Buttton("Hello World")
- # When the button recieves the "clicked" signal, it will call the
- # function hello() passing it None as its argument. The hello()
- # function is defined above.
- self.button.connect("clicked", self.hello, None)
- # This will cause the window to be destroyed by calling
- # gtk_widget_destroy(window) when "clicked". Again, the destroy
- # signal could come from here, or the window manager.
- self.button.connect("clicked", gtk.widget.destroy, self.window)
- # This packs the button into the window (a GTK container.)
- self.window.add(self.button)
- # The final step is to display the newly created widget.
- self.button.show
- # and add the window
- self.window.show
- def main(self):