PythonmaniaScript Different! |
|
|
Navigation
Artikel zu Python
Warum Python? Hallo Welt Wie alt ist der Kapitän? Schmetterlingskurve Apfelmännchen Dancing Python User-Agenten fakeMail() Template Engine Python & XML (1) wxPython (1) wxPython (2) wxPython (3) How To's ftp mit Python Filedialog Piddle und Mac OS X XML-RPC Blogger API Zope und Python ZWiki und Plone Navigation und DTML »Last Update« Book Reviews Python und Tkinter Python Cookbook Alte Artikel O'Reilly MacPython & Tkinter (d) MacPython & Tkinter (e) Modul W Easy Dialogs File Dialogs Archiv Oktober 2009 Juni 2009 Mai 2009 April 2009 März 2009 Februar 2009 Januar 2009 Dezember 2008 November 2008 Oktober 2008 September 2008 August 2008 Juli 2008 Juni 2008 Mai 2008 April 2008 März 2008 Februar 2008 Januar 2008 Dezember 2007 November 2007 Oktober 2007 September 2007 August 2007 Juli 2007 Juni 2007 Mai 2007 April 2007 März 2007 Februar 2007 Januar 2007 Dezember 2006 November 2006 Oktober 2006 September 2006 August 2006 Juli 2006 Juni 2006 Mai 2006 April 2006 März 2006 Februar 2006 Januar 2006 Dezember 2005 November 2005 Oktober 2005 September 2005 August 2005 Juli 2005 Juni 2005 Mai 2005 April 2005 März 2005 Februar 2005 |
Anzeigen
|
|
wxPython für den PantherwxPython ist ein GUI-Toolkit. Eigentlich ist es ein Wrapper um die C/C++-Bibliothek wxWidgets (formerly known as wxWindows). Und dadurch, daß eigentlich C-Funktionen aufgerufen werden, ist wxPython auch eine unglaublich schnelle GUI-Bibliothek. wxPython ist Cross-Platform. Es existieren Versionen für Windows, diverse *Nixe und für Mac OS X. Es gibt eine Jaguar- und eine Panther-Version. Die Installation ist unglaublich einfach, vorausgesetzt, man hat Jack Jansens MacPython-Framework heruntergeladen und installiert (was jeder engagierte Python-Programmierer auf dem Macintosh sowieso sollte). Danach lädt man ein Package hier herunter, das man mit einem einfachen Doppelklick installiert. Jetzt ist man in der Lage, sein erstes wxPython-Programm zu schreiben. Es könnte z.B. so aussehen: #!/usr/bin/pythonw from wxPython.wx import * class MyApp(wxApp): def OnInit(self): frame = wxFrame(NULL, -1, "Hello wxPython-World!") frame.Show(true) self.SetTopWindow(frame) return true app = MyApp(0) app.MainLoop()
Das schreibt man mit dem Editor seiner Wahl. (Bitte nicht mit der MacPython-IDE. Wegen eines subtilen Aqua-Bugs können keine Fenstermanager außer Aqua selber von der MacPython IDE aufgerufen werden. Aus dem gleiche Grund steht auch indem UNIX-Shebang
Wenn ihr dieses kleine Skript nun z.B. unter dem Namen wxStart.pyw abspeichert (um die Uebersicht nicht zu verlieren, verpasse ich allen Skripten, die mit
(1) Im Terminal (2) Die Datei einfach auf den PythonLauncher schieben, der mit der MacPython Distribution mitkommt. Auch hier kann man in den Preferenzes einstellen, daß ein Terminalfenster zum Programstart geöffnet wird. Wenn das Programm dann fertig ist und keine Fehler mehr zu erwarten sind, kann man diese Option ja wieder wegklicken, das Programm läuft dann wie eine Mac-Applikation.
(3) Am schönsten natürlich in BBEdit. Hier kann man einfach den Run-Befehl unter dem #!-Menü nutzen. Eventuelle Fehlermeldungen werden in einem separaten Window angezeigt. Und da BBEdit den Shebang auswertet, wird auch tatsächlich Egal, welche Form man bevorzugt, wenn alles korrekt eingetippt wurde, sollte folgendes Fensterchen erscheinen:
Es ist voll funktionsfähig, man kann es vergrößern und verkleinern und wenn man das rote Knöpfchen drückt, beendet sich der Python-Interpreter und damit auch das Programm. Was ist nun genau passiert? from wxPython.wx import * Hier haben wir die wx-Python-Bibliothek komplett importiert. class MyApp(wxApp): def OnInit(self): frame = wxFrame(NULL, -1, "Hello wxPython-World!") frame.Show(true) self.SetTopWindow(frame) return true
Jedes wxPython-Script benötigt eine Klasse, die von app = MyApp(0) app.MainLoop()
Die letzten beiden Zeilen sind vermutlich in allen wxPython-Skripten die gleichen. Wie alle Event-gesteuerten Programm benötigen sie eine Werbung: |
||