blog · git · desktop · images · contact & privacy · gopher


Drei kleine GTK-Helferlein

Es gibt so ein paar Dinge bei GTK, die auch isoliert und außerhalb eines Programms nützlich sind. Insbesondere sind das drei Dialoge:

Ein Kalender ist offensichtlich hilfreich. Die anderen beiden benutze ich als generische "Browser": Wenn ich zum Beispiel eine Webseite bastele, brauche ich eben hin und wieder mal Font oder Farbe. Oder wenn mein Desktop dran glauben muss und ein neues Aussehen geschenkt bekommt. Oder oder oder.

Mittels PyGTK kann man nun kleinste Skripte schreiben, die nichts weiter tun, als diese Dialoge anzuzeigen. Fertige Alternativen gibt es natürlich, zum Beispiel etwas wie zenity -- aber da ist dann doch hier oder da etwas nicht so, wie ich es gerne hätte und im Bedarfsfall ließe es sich schlecht erweitern.

pycal

Der Kalender. Hier als Besonderheit: Das Fenster wird an der Mausposition geöffnet, wenn ein Kommandozeilenargument übergeben wurde. Das nutze ich bei einem Klick auf die Uhr in meiner Statusleiste.

Da es keinen fertigen Dialog mit einem Kalender darin gibt, muss dieser hier zusätzlich zuerst gebaut werden.

#!/usr/bin/env python2

import gtk
import sys

dlg = gtk.Dialog('Calendar')
dlg.set_has_separator(False)
dlg.vbox.pack_start(gtk.Calendar())
dlg.show_all()

if len(sys.argv) >= 2:
    _, x, y, _ = gtk.gdk.display_get_default().get_pointer()
    w, h = dlg.get_size()
    dlg.move(x - w, y - h)

dlg.run()

pycol

Dialog zur Farbauswahl.

#!/usr/bin/env python2

import gtk

gtk.ColorSelectionDialog('Color').run()

pyfont

Dialog zur Schriftartauswahl.

#!/usr/bin/env python2

import gtk

gtk.FontSelectionDialog('Font').run()

Abschluss

Die letzten beiden sind eigentlich schon albern trivial, aber ein Minuspunkt ist das ja nicht. ;) Bei denen brauche ich es nicht, dass sie an der Mausposition starten -- aber das wäre etwas, was sich leicht nachrüsten ließe.