Nach längerer Pause habe ich mal wieder versucht, mich mit
wxPython, dem alternativen GUI-Toolkit für
Python
vertraut zu machen. Dabei gab es erst einmal eine Überraschung: wxPython
ist beim Tiger mit dabei. Ich habe eine »jungfräuliche« Tiger-Installation (10.4.3)
und mein wxPython-Script lief sofort. (Übrigens gilt das gleiche auch für
Tkinter, dem »anderen« GUI-Toolkit für Python. Auch dies wurde ohne zusätzlichen
Installationsaufwand sofort erkannt. Danke, Apple!)
Die Dokumentation
zu wxPython ist - im Vergleich zu Tkinter - immer noch mau, doch das wird sich bald ändern:
Bei Mannings
erscheint im Januar »wxPython in Action« von Noel Rappin and Robin Dunn und wenn das Buch nur halb
so gut ist wie das Tkinter-Buch aus dem gleichen Verlag
(hier meine Review),
dann hat die Suche nach der Dokumentation endgültig ein Ende. Aber wie gesagt, momentan
schlage ich mich mit den Grundlagen herum. Und habe, angesichts der Jahreszeit, erst
einmal das Haus vom Nikolaus gezeichnet:
#!/usr/bin/pythonw
import wx
class DrawPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent, -1)
wx.EVT_PAINT(self, self.OnPaint)
def OnPaint(self, event=None):
dc = wx.PaintDC(self)
dc.Clear()
dc.SetPen(wx.Pen('BLACK', 1))
dc.DrawLine(110, 110, 260, 260)
dc.DrawLine(260, 110, 260, 260)
dc.DrawLine(260, 110, 110, 260)
dc.DrawLine(110, 110, 260, 110)
dc.DrawLine(110, 110, 110, 260)
dc.DrawLine(110, 260, 260, 260)
dc.SetPen(wx.Pen('RED', 2))
dc.DrawLine(110, 110, 185, 50)
dc.DrawLine(185, 50, 260, 110)
if __name__ == '__main__':
app = wx.PySimpleApp(0)
frame = wx.Frame(None, -1, 'Das Haus vom Nikolaus',
size=(380, 380))
DrawPanel(frame)
frame.Show(True)
app.MainLoop()
Ich glaube, der Code ist selbsterklärend. Die Klasse DrawPanel initialisiert eine von wx.Panel abgeleitete Zeichenfläche und zeichnet dann darauf. Dazu sind Zeichenflächen schließlich da. Und als Ergebnis sehen wir tatsächlich das berühmte Haus.
Man darf nur nicht vergessen, wegen der schon mehrfach beklagten Eigenart von Aqua, pythonw statt python aufzurufen. Und der kostenlose Klon des besten Editors der Welt entwickelt sich mehr und mehr zu meiner bevorzugten »Python-IDE«.
Mir scheint, daß
wxPython tatsächlich um einiges logischer und einfacher ist
als Tkinter. Daher bin ich sehr gespannt auf das oben erwähnte Buch.
http://www.schockwellenreiter.de/xml/rss.xml
[ Verweis - Nachrichtenkanal ]
http://www.schockwellenreiter.de/2005/12/21.html#dasHausVomNikolaus
[ Verweis - Eintrag ]