Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time
91 lines (61 sloc) 2.68 KB
.. _introduction:
Getting Started
Simple Example
To start with our tutorial we create the simplest program possible.
This program will create an empty 200 x 200 pixel window.
.. image:: ../images/simple_example.png
.. literalinclude:: ../examples/
We will now explain each line of the example.
.. literalinclude:: ../examples/
:lines: 1-4
In the beginning, we have to import the Gtk module to be able to
access GTK+'s classes and functions.
Since a user's system can have multiple versions of GTK+ installed at the same,
we want to make sure that when we import Gtk that it refers to GTK+ 3
and not any other version of the library, which is the purpose
of the statement ``gi.require_version('Gtk', '3.0')``.
The next line creates an empty window.
.. literalinclude:: ../examples/
:lines: 6
Followed by connecting to the window's delete event to ensure that the
application is terminated if we click on the *x* to close the window.
.. literalinclude:: ../examples/
:lines: 7
In the next step we display the window.
.. literalinclude:: ../examples/
:lines: 8
Finally, we start the GTK+ processing loop which we quit when the window is
closed (see line 6).
.. literalinclude:: ../examples/
:lines: 9
To run the program, open a terminal, change to the directory of the file, and
Extended Example
For something a little more useful, here's the PyGObject version of the classic
"Hello World" program.
.. image:: ../images/extended_example.png
.. literalinclude:: ../examples/
This example differs from the simple example as we sub-class :class:`Gtk.Window` to define our own
:class:`MyWindow` class.
.. literalinclude:: ../examples/
:lines: 7
In the class's constructor we have to call the constructor of the super class. In addition,
we tell it to set the value of the property `title` to `Hello World`.
.. literalinclude:: ../examples/
:lines: 9
The next three lines are used to create a button widget, connect to its `clicked` signal and
add it as child to the top-level window.
.. literalinclude:: ../examples/
:lines: 11-13
Accordingly, the method :meth:`on_button_clicked` will be called if you click on the button.
.. literalinclude:: ../examples/
:lines: 15-16
The last block, outside of the class, is very similar to the simple example above,
but instead of creating an instance of the generic :class:`Gtk.Window` class, we create
an instance of :class:`MyWindow`.