2. Komma igång
2.1. Enkelt exempel
För att starta med vår handledning skapar vi det enklast tänkbara programmet. Detta program kommer skapa ett tomt fönster som är 200 x 200 bildpunkter stort.

1import gi
2
3gi.require_version("Gtk", "3.0")
4from gi.repository import Gtk
5
6win = Gtk.Window()
7win.connect("destroy", Gtk.main_quit)
8win.show_all()
9Gtk.main()
Vi kommer nu förklara varje rad i exemplet.
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
I början måste vi importera Gtk-modulen för att kunna komma åt GTK+:s klasser och funktioner. Då en användares system kan ha flera versioner av GTK+ installerade samtidigt så vill vi säkerställa att då vi importerar Gtk så refererar det till GTK+ 3 och inte någon annan version av biblioteket, vilket är syftet med satsen gi.require_version('Gtk', '3.0')
.
Nästa rad skapar ett tomt fönster.
win = Gtk.Window()
Följt av att ansluta till fönstrets borttagningshändelse för att säkerställa att programmet stängs om vi klickar på x för att stänga fönstret.
win.connect("destroy", Gtk.main_quit)
I nästa steg visar vi fönstret.
win.show_all()
Slutligen startar vi GTK+-bearbetningsslingan som vi avslutar när fönstret stängs (se rad 6).
Gtk.main()
För att köra programmet, öppna en terminal, ändra till filens katalog, och mata in:
python simple_example.py
2.2. Utökat exempel
För något som är lite mer användbart kommer här PyGObject-versionen av det klassiska ”Hej världen”-programmet.

1import gi
2
3gi.require_version("Gtk", "3.0")
4from gi.repository import Gtk
5
6
7class MyWindow(Gtk.Window):
8 def __init__(self):
9 super().__init__(title="Hello World")
10
11 self.button = Gtk.Button(label="Click Here")
12 self.button.connect("clicked", self.on_button_clicked)
13 self.add(self.button)
14
15 def on_button_clicked(self, widget):
16 print("Hello World")
17
18
19win = MyWindow()
20win.connect("destroy", Gtk.main_quit)
21win.show_all()
22Gtk.main()
Detta exempel skiljer sig från det enkla exemplet då vi gör en underklass till Gtk.Window
för att skapa vår egen klass MyWindow
.
class MyWindow(Gtk.Window):
I klassens konstruktor måste vi anropa superklassens konstruktor. Dessutom säger vi till den att ställa in värdet på egenskapen title till Hello World.
super().__init__(title="Hello World")
De nästa tre raderna används för att skapa en knappkomponent, ansluta till dess clicked-signal och lägga till den som barn till toppnivåfönstret.
self.button = Gtk.Button(label="Click Here")
self.button.connect("clicked", self.on_button_clicked)
self.add(self.button)
På det viset kommer metoden on_button_clicked()
att anropas om du klickar på knappen.
def on_button_clicked(self, widget):
print("Hello World")
Det sista blocket, utanför klassen, är väldigt likt det enkla exemplet ovan, men istället för att skapa en instans av den generiska klassen Gtk.Window
, så skapar vi en instans av MyWindow
.