About Dialog
#!/usr/bin/env python
#
# [SNIPPET_NAME: About Dialog]
# [SNIPPET_CATEGORIES: PyGTK]
# [SNIPPET_DESCRIPTION: Create an AboutDialog]
# [SNIPPET_AUTHOR: Jon Staley]
# [SNIPPET_DOCS: http://www.pygtk.org/docs/pygtk/class-gtkaboutdialog.html]
# [SNIPPET_LICENSE: MIT]
# example about.py
import pygtk
pygtk.require('2.0')
import gtk
class AboutDialogExample:
def __init__(self):
# Create base window
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
# Connect the destroy signal to gtk.main_quit ensuring the
# application closes gracefully
self.window.connect("destroy", gtk.main_quit, None)
# Create simple button
self.button = gtk.Button("About Dialog")
# Connect button to the show_about method
self.button.connect("clicked", self.show_about, None)
# Add button to the window and show both
self.window.add(self.button)
self.button.show()
self.window.show()
def main(self):
gtk.main()
def show_about(self, widget, data):
# The AboutDialog has good helper methods which
# setup the dialog and add the content ensuring all
# about dialog are consistant. Below is a small example
# Create AboutDialog object
dialog = gtk.AboutDialog()
# Add the application name to the dialog
dialog.set_name('Example About Dialog')
# Set the application version
dialog.set_version('0.1')
# Pass a list of authors. This is then connected to the 'Credits'
# button. When clicked the buttons opens a new window showing
# each author on their own line.
dialog.set_authors(['Jon Staley', 'Example'])
# Add a short comment about the application, this appears below the application
# name in the dialog
dialog.set_comments('A simple example of an about dialog.')
# Add license information, this is connected to the 'License' button
# and is displayed in a new window.
dialog.set_license('Distributed under the MIT license.\nhttp://www.opensource.org/licenses/mit-license.php')
# Show the dialog
dialog.run()
# The destroy method must be called otherwise the 'Close' button will
# not work.
dialog.destroy()
def hide_dialog(self, widget, data):
widget.hide()
if __name__ == "__main__":
about = AboutDialogExample()
about.main()