Programmieren mit PyGTK und Glade

Hallo Welt!

Ein einfaches Programm hallo-welt.py, das eine Benutzeroberfläche aus der Datei hallo-welt.ui anzeigt:

Quellcode

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env python
#-*- coding: utf-8 -*-

import gtk


class MyApp(object):
    def __init__(self):
        self.builder = gtk.Builder()
        self.builder.add_from_file("hallo-welt.ui")
        self.builder.connect_signals(self)

    def run(self):
        try:
            gtk.main()
        except KeyboardInterrupt:
            pass
    
    def quit(self):
        gtk.main_quit()


    def on_window1_delete_event(self, *args):
        self.quit()


if __name__ == '__main__':
    app = MyApp()
    app.run()

Bildschirmfoto

Das Programm erzeugt ein einfaches Fenster:

_images/hallo-welt.png

Beschreibung

Die Struktur ist einfach: In Zeile 4 wird das Modul gtk importiert, dann wird in Zeile 7-24 eine Klasse MyApp definiert, die das eigentliche Programm enthält. Von dieser Klasse wird dann in Zeile 28-29 eine Instanz erzeugt und die Methode run aufgerufen.

In den Zeile 9-11 wird in der Methode __init__ ein gtk-Builder-Objekt erzeugt, die Benutzeroberfläche geladen und die Signal-Behandlungsroutinen verbunden (siehe Glade-Projektdateien laden).

Zeile 13-17 startet die Warteschliefe von GTK (siehe Signale und Ereignisse) und fängt KeyboardInterrupt ab, um eine Fehlermeldung zu vermeiden, falls das Programm mit Strg-C abgebrochen wird.

Die in Zeile 19-20 definierte Methode quit beendet die GTK-Warteschleife und damit das Programm.

In Zeile 23-24 wird eine Behandlungsroutine für das Signal delete-event des Fensters definiert, der die oben definierte Methode quit aufruft. Diese Behandlungsroutine wird aufgerufen, wenn das Fenster geschlossen wird, z.B. weil der Benutzer den entsprechenden Fester-Knopf angeklickt hat.

start | Index | weiter | zurück