123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #!/usr/bin/env python
- # This example was adapted from http://pygtk.org/pygtk2tutorial/examples/helloworld.py
- import pygtk
- pygtk.require('2.0')
- import gtk
- class HelloWorld:
- def msgbox(self, text):
- "Display a simple message box"
- md = gtk.MessageDialog(self.window, gtk.DIALOG_DESTROY_WITH_PARENT,
- gtk.MESSAGE_INFO, gtk.BUTTONS_CLOSE, text)
- md.run()
- # This is a callback function. The data arguments are ignored
- # in this example. More on callbacks below.
- def hello(self, widget, data=None):
- self.msgbox("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.
- self.msgbox("delete event occurred")
- # Change FALSE to TRUE and the main window will not be destroyed
- # with a "delete_event".
- return False
- def destroy(self, widget, data=None):
- 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.Button("Hello World")
-
- # When the button receives 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_object("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 this newly created widget.
- self.button.show()
-
- # and the window
- self.window.show()
- def main(self):
- # All PyGTK applications must have a gtk.main(). Control ends here
- # and waits for an event to occur (like a key press or mouse event).
- gtk.main()
- def main():
- hello = HelloWorld()
- hello.main()
|