Welche Gui soll ich verwenden?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Miko

Hi,
ich habe ein Problem.
Nun will ich auch endlich mal intensiver in Gui Programmierung einsteigen auch wenn ich eher ein Freund der Console bin. Doch die meisten Leute wollen doch eine Grafische Oberfläche.

Ich brauche eine Gui die sowohl unter Linux als auch unter Windows einwandfrei läuft und gleich ausschaut.

Tkinter: Ich finde diese Gui eigentlich sehr toll und es ist die einzigste die einwandfrei auf Linux und Windows läuft. Allerdings schaut sie unter Linux dermaßen hässlich aus dass sie auf dieser Platform kaum einzusetzten ist.

WxPython: Überall wird es gelobt und es schaut auch ganz toll aus. Nur viele Funktionen wollen unter Linux nicht und unter Windows geht das ein oder andere auch nicht. Die Quellcodes der Dokumentation laufen bei mir auf beiden Systemen nicht. Nach einiger Zeit hab ich es wenigstens geschafft einfache WX Anwendungen auf Linux laufen zu bekommen. Doch wenn nichtmal die Doku funktioniert werde ich es mir kaum beibringen können.

PyGTK: Ich bin ein großer Fan von GTK. Ob es unter Linux funktioniert habe ich noch nicht probiert denn unter Windows hat es mir den letzten Nerv geraubt. Ich habe tausend Sachen installiert (Glade, gtk, pygtk etc.), doch das Modul "pygtk" findet er nie. Somit konnte ich absolut nichts ausprobieren.

PyQT: Auf Grund seiner KDE Wurzeln habe ich PyQT noch nicht ausprobiert. Hat jemand erfahrungen damit?

Andere Guis kenne ich nicht.
Kennt vielleicht einer noch eine gute?
Weis jemand wie ich eines meiner Probleme vielleicht beheben könnte oder hat einer selbiges?

Über ein bisschen Erfahrungsaustausch wär ich sehr dankbar denn als großer Fan von Python würde ich ungern auf andere Sprachen zurückgreifen müssen um Gui zu Programmieren.

Schöne Grüße
Miko
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Für PyGTK unter Windows gibt es einen Installer, damit geht auch das vernünftig.

Unter GNU/Linux rennt es natürlich auch einwandfrei ;)
Miko

Danke für die schnelle Antwort.
Den Installer habe ich runtergeladen und mehrmals installiert. Die Installation ging einwandfrei allerdings findet er das Modul pygtk nicht.
Wenn ich gtk importieren möchte sagt er mir dass es kein Modul gobject gibt.

Somit kann ich weder gtk noch pygtk importieren!
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Miko hat geschrieben: Tkinter: Ich finde diese Gui eigentlich sehr toll und es ist die einzigste die einwandfrei auf Linux und Windows läuft. Allerdings schaut sie unter Linux dermaßen hässlich aus dass sie auf dieser Platform kaum einzusetzten ist.
Geschmackssache, aber IMHO hast du auch recht.
WxPython: Überall wird es gelobt und es schaut auch ganz toll aus. Nur viele Funktionen wollen unter Linux nicht und unter Windows geht das ein oder andere auch nicht. Die Quellcodes der Dokumentation laufen bei mir auf beiden Systemen nicht. Nach einiger Zeit hab ich es wenigstens geschafft einfache WX Anwendungen auf Linux laufen zu bekommen. Doch wenn nichtmal die Doku funktioniert werde ich es mir kaum beibringen können.
Wo genau ist das Problem? Die Doku gibts IIRC auch als CHM-File, was auch unter Linux z.b. mit kchmviewer hervorragend anzusehen ist.

Außerdem fand ich jetzt nicht, dass besonders viel unter Linux nicht funktioniert. Man muss eben ein Auge auf die Portabilität werfen, und kann nicht erwarten, dass alle Gimmicks auf allen Plattformen laufen.
PyGTK: Ich bin ein großer Fan von GTK. Ob es unter Linux funktioniert habe ich noch nicht probiert denn unter Windows hat es mir den letzten Nerv geraubt. Ich habe tausend Sachen installiert (Glade, gtk, pygtk etc.), doch das Modul "pygtk" findet er nie. Somit konnte ich absolut nichts ausprobieren.
Komisch. Ich habe damals nichts anderes machen müssen, als den Installer auszuführen (ich glaube, ich habe den von gladewin32 genommen), und schon hat PyGTK wunderbar funktioniert. Sieht zwar nicht total nativ aus, wie Qt oder WX, funktioniert aber gut.
PyQT: Auf Grund seiner KDE Wurzeln habe ich PyQT noch nicht ausprobiert. Hat jemand erfahrungen damit?
Gegen Qt 4.x sollte, da auf allen Plattformen freie Software, nichts einzuwenden sein. Ähnlich wie bei wx ist PyQt auch nur eine dünne Wrapperschicht um ein C++-Framework.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Miko

Geschmackssache, aber IMHO hast du auch recht.
Naja Tkinter schaut aus wie eine Gui von vor 20 Jahren. Soviele wirds nicht geben denen das gefällt. Ich hab ja nichts dagegen aber wenn ich Programm programmier möcht ich nicht dass die Leute sie allein wegen dem Aussehen nicht benutzen.

Wo genau ist das Problem? Die Doku gibts IIRC auch als CHM-File, was auch unter Linux z.b. mit kchmviewer hervorragend anzusehen ist.

Außerdem fand ich jetzt nicht, dass besonders viel unter Linux nicht funktioniert. Man muss eben ein Auge auf die Portabilität werfen, und kann nicht erwarten, dass alle Gimmicks auf allen Plattformen laufen.
Was ist IIRC und CHM?
Die Dokumentationen laufen unter Windows nicht allein schon weil sie das Modul run benötigen das aus irgend einem Grund auch nicht gefunden wird. Ich wollte mit einem Freund mal ein Programm machen der musste auch erst dran Rumbauen bis es unter Linux lief. Das was unter Linux läuft würd mir ja schon reichen aber die Dokus sollten schon auf beiden Plattformen laufen.
Komisch. Ich habe damals nichts anderes machen müssen, als den Installer auszuführen (ich glaube, ich habe den von gladewin32 genommen), und schon hat PyGTK wunderbar funktioniert. Sieht zwar nicht total nativ aus, wie Qt oder WX, funktioniert aber gut.
Glade ist doch nicht speziell für Python oder? Es gibt ja auch verschiedene Glade installer (dev und normal). Welchen hast du genommen? Was meinst du mit es sieht nicht nativ aus?
Gegen Qt 4.x sollte, da auf allen Plattformen freie Software, nichts einzuwenden sein. Ähnlich wie bei wx ist PyQt auch nur eine dünne Wrapperschicht um ein C++-Framework.
Obs nur eine Wrapperschicht ist oder nicht ist ja eigentlich egal. Hast du schon mit PyQT programmiert? Wie waren deine Erfahrungen im gegensatz zu anderen Guis? Hat es einwandfrei unter Windows und Linux funktioniert?
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Miko hat geschrieben:
Wo genau ist das Problem? Die Doku gibts IIRC auch als CHM-File, was auch unter Linux z.b. mit kchmviewer hervorragend anzusehen ist.

Außerdem fand ich jetzt nicht, dass besonders viel unter Linux nicht funktioniert. Man muss eben ein Auge auf die Portabilität werfen, und kann nicht erwarten, dass alle Gimmicks auf allen Plattformen laufen.
Was ist IIRC und CHM?
IIRC = if I recall correctly, wenn ich mich recht erinnere
CHM = kompilierte HTML-Hilfedateien, die unter Windows verwendet werden
Die Dokumentationen laufen unter Windows nicht allein schon weil sie das Modul run benötigen das aus irgend einem Grund auch nicht gefunden wird. Ich wollte mit einem Freund mal ein Programm machen der musste auch erst dran Rumbauen bis es unter Linux lief. Das was unter Linux läuft würd mir ja schon reichen aber die Dokus sollten schon auf beiden Plattformen laufen.
Wie gesagt gibt es die WX-Dokumentation als CHM-Datei. Um diese zu betrachten, ist nicht mal Python notwendig.
Komisch. Ich habe damals nichts anderes machen müssen, als den Installer auszuführen (ich glaube, ich habe den von gladewin32 genommen), und schon hat PyGTK wunderbar funktioniert. Sieht zwar nicht total nativ aus, wie Qt oder WX, funktioniert aber gut.
Glade ist doch nicht speziell für Python oder? Es gibt ja auch verschiedene Glade installer (dev und normal). Welchen hast du genommen? Was meinst du mit es sieht nicht nativ aus?
Unter http://gladewin32.sourceforge.net/ gibt es Installer für GTK.
Nicht nativ heißt, dass GTK nicht Windows' eigene Controls hernimmt, sondern selbst welche zeichnet, die halt fast, aber nicht ganz wie die Windows-eigenen aussehen.
Gegen Qt 4.x sollte, da auf allen Plattformen freie Software, nichts einzuwenden sein. Ähnlich wie bei wx ist PyQt auch nur eine dünne Wrapperschicht um ein C++-Framework.
Obs nur eine Wrapperschicht ist oder nicht ist ja eigentlich egal. Hast du schon mit PyQT programmiert? Wie waren deine Erfahrungen im gegensatz zu anderen Guis? Hat es einwandfrei unter Windows und Linux funktioniert?
Nein, habe ich nicht, aber lunar, soweit ich weiß. Er wird sich sicher dazu äußern :)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Miko

Wie gesagt gibt es die WX-Dokumentation als CHM-Datei. Um diese zu betrachten, ist nicht mal Python notwendig
Ich meinte eigentlich die Doku wo man die ganzen Codebeispiele hat und ne Livedemo. Wenn ich da den Code kopiere funktioniert er weder unter Windows noch unter Linux.
Unter http://gladewin32.sourceforge.net/ gibt es Installer für GTK.
Da habe ich meine Dateien auch her. Nur welche ist nun die richtige? Und obwohl ich 3 von denen Installiert hab findet er pygtk trotzdem nicht.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Miko hat geschrieben:Ich meinte eigentlich die Doku wo man die ganzen Codebeispiele hat und ne Livedemo. Wenn ich da den Code kopiere funktioniert er weder unter Windows noch unter Linux.
Hallo Miko!

Die Codebeispiele funktionieren nur innerhalb der Livedemo. Die sind so geschrieben, dass diese innerhalb einer einzigen Anwendung (die Livedemo) ausgeführt werden können. Dafür mussten einige Verrenkungen in Kauf genommen werden.

Wenn das nicht so wäre, dann müsste jede Demo als eigene Anwendung laufen und das wäre auch nicht ideal.

Wenn du dich für wxPython interessierst, dann gibt es nur eines: Das Buch "wxPython in Action". Alles Andere ist Zeitverschwendung. ;-) Nirgends wird wxPython besser und klarer erklärt als in diesem Buch.

Und hier noch zwei praktische Links:
- http://www.python-forum.de/topic-6298.html
- http://www.python-forum.de/topic-7916.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
lunar

birkenfeld hat geschrieben:
Obs nur eine Wrapperschicht ist oder nicht ist ja eigentlich egal. Hast du schon mit PyQT programmiert? Wie waren deine Erfahrungen im gegensatz zu anderen Guis? Hat es einwandfrei unter Windows und Linux funktioniert?
Nein, habe ich nicht, aber lunar, soweit ich weiß. Er wird sich sicher dazu äußern :)
Jau, da bin ich ;)

PyQT ist für mich perfekt. Man merkt zwar doch an einige Stellen (besonders bei der Arbeit mit Qt's Listenklassen und Iteratoren), dass die API ein bisschen unpythonisch ist, aber das wird sich bei dem Generieren von Wrappern für ein Toolkit dieses Umfangs wohl nicht vermeiden lassen und fällt beim Programmieren auch kaum auf.

Mit dem Qt Designer gibt es dagegen einen hervorragenden GUI Designer. Allerdings müssen dessen Beschreibungsdateien vorher in Python-Module übersetzt werden (im Gegensatz zu Glade), aber das ist in der Praxis kaum ein echter Nachteil.

Die API ist allgemein sehr angenehm und in der Regel gut verständlich, und die (C++-) Dokumentation sehr, sehr ausführlich und auch relativ übersichtlich. Für die Python-Bindings selbst gibt es nur wenig Dokumentation (es ist eher eine kleine Einführung), da sich die APIs allerdings nur wenig unterscheiden, ist die C++-Dokumentation absolut geeignet für Python.

Wie es um die Portabilität von Qt4 steht, habe ich jetzt nicht selbst ausprobiert, da ich zum einen nicht für Windows programmiere, und zum anderen hauptsächlich noch Qt3 einsetze, da ich KDE GUIs schreibe. Allerdings war Qt (auch in Version 3) schon immer höchst portabel, der Adobe Reader und Opera z.B. laufen ja problemlos auf beiden Plattformen. Die einzige Hürde wäre somit die Installation des Toolkits und der Bindings, da es aber offizielle Installer für (Py)Qt4 gibt, dürfte sich diese wohl problemlos gestalten. Somit müssten PyQt4 Programme sowohl unter Windows als auch unter Linux laufen, allerdings habe ich das wie gesagt noch nicht selbst getestet.

Das das Versprechen der Portabilität zumindest bei C++ allerdings wirklich erfüllt ist, zeigen Projekte wie Amarok, deren Alphaversionen mit Qt4 bereits unter Windows laufen.

Qt4 bietet einiges an Widgets, natürlich alle Standardelemente, und noch eher exotisches wie ein Dial Widget oder LCD Nummern. Sollten die GUI Bibliotheken von KDE4 tatsächlich, wie angekündigt, portabel sein, stehen dann auch noch die umfangreichen KDE Widgets zur Verfügung, in denen eigentlich alles vorhanden ist, was man sich vorstellen kann.

Was mich persönlich etwas stört, ist die Lizenz: Qt steht unter der GPL, man ist also gezwungen, entweder selbst die GPL zu verwenden, oder eine Lizenz zu kaufen. Ich habe persönlich nichts gegen die GPL, allerdings gibt es ja auch Leute, die BSD artiges vorziehen.

Ich persönlich finde Qt echt cool und komme damit hervorragend zurecht, das ist allerdings auch ein in höchstem Maße subjektive Ansicht, da ich nur noch .NET Winforms und Java Swing kenne, also nichts, was direkt mit Qt vergleichbar ist und somit auch nicht die Nachteile von Qt gegenüber z.B. Gtk kenne.
Miko

danke für die zahlreichen antworten.

was mich an wx ein bisschen stört ist dass es wesentlich umständlicher ist als tkinter. Man braucht viel mehr quellcode rundrum.

wx python in action kenne ich allerdings ist es in englisch. klar englisch ist die it sprache aber dennoch kann ich sie nicht so gut wie deutsch.

wobei o'relly bücher immer führend sind. da macht man nie was falsch.

funktioniert die wxpython demo unter linux? was gibt es für tutorials pdfs etc. für wxpython?

Weiß jemand wie man gtk unter windows zum laufen bekommt?

ich glaube ich entscheide mich für wx. Irgendwie scheint das der beste kompromiss zwischen plattformunabhängigkeit und funktionsvielfalt zu sein. Nur die umständlichkeit stört mich etwas.
lunar

Miko hat geschrieben:Irgendwie scheint das der beste kompromiss zwischen plattformunabhängigkeit und funktionsvielfalt zu sein.
Wie kommst du jetzt darauf? Qt4 ist voll portabel und sehr umfangreich, deswegen würde ich schon wissen, wie du jetzt ausgerechnet WxWidgets als den besten Kompromiss ausgemacht hast.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

lunar hat geschrieben:Qt4 ist voll portabel
Hallo lunar!

Wann hast du zum letzen Mal versucht, ein Python-Programm mit QT4 unter Windows zum Laufen zu bekommen? Ich nenne diese Marter sicher nicht portabel. :roll:

Ich scheitere ja schon an Eric 4 und das ist noch nicht mal in Python geschrieben -- oder doch? Wie auch immer. Ich hatte nicht die Nerven, die gesamte Installation durchzuhalten.

Vielleicht hat ja jemand eine einfache Installationsanleitung parat. Dann nehme ich alles zurück.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Miko

Wie kommst du jetzt darauf? Qt4 ist voll portabel und sehr umfangreich, deswegen würde ich schon wissen, wie du jetzt ausgerechnet WxWidgets als den besten Kompromiss ausgemacht hast.
für mich ist das der beste kompromiss. qt4 kenn ich nicht. aber ich glaub kaum dass es leichter zu installieren ist als gtk. und gtk hab ich schon nicht zum laufen bekommen.

Auf windowskompatiblität könnte ich ja eigentlich verzichten. nur in der schule haben wir leider windows und da will ich auch häufiger dran weiterprogrammieren.

am liebsten hätte ich eigentlich gtk genommen. wenns doch nur laufen würd. oder tkinter aber das ist ja so hässlich. wx find ich irgendwie zu umständlich.
lunar

Miko hat geschrieben:für mich ist das der beste kompromiss. qt4 kenn ich nicht. aber ich glaub kaum dass es leichter zu installieren ist als gtk.
Zwei Doppelklicks auf "setup.exe" sind doch wohl nicht schwer, oder? Ich weiß, wir Linuxer sind verwöhnt vom Paketmanagement, aber das sollte doch wohl drin sein... ^^

Btw, du sagst, dass du in der Schule weiterprogrammieren willst? Darfst du überhaupt auf den Schulrechnern Software installieren?
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Miko hat geschrieben: ......oder tkinter aber das ist ja so hässlich....
Hässlich unter Windows? Wie soll deine Anwendung denn Aussehen?
lunar

pyStyler hat geschrieben:
Miko hat geschrieben: ......oder tkinter aber das ist ja so hässlich....
Hässlich unter Windows? Wie soll deine Anwendung denn Aussehen?
Nein, unter Linux. Diese Diskussion hatten wir hier schon mal, und ich erlaube mir mal, den Screenshot, den ich dort gepostet hatte, hier ebenfalls einzustellen:

Bild

Das ist Tk unter Linux... wem's gefällt...


@gerold:
Ich habe es noch nie versucht, da ich nicht unter Windows programmiere. Allerdings ist PyQt4 selbst portabel. Immerhin laufen viele Alpha-Versionen von KDE4 Programmen (z.B. Amarok) nahezu einwandfrei unter Windows.

Allerdings ist jetzt mein Ehrgeiz geweckt: Ich werd mich mal an einem PyQt4 Hello World unter Windows versuchen.
Zuletzt geändert von lunar am Mittwoch 25. Juli 2007, 15:18, insgesamt 1-mal geändert.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

lunar hat geschrieben:Zwei Doppelklicks auf "setup.exe" sind doch wohl nicht schwer, oder?
Hallo lunar!

Ich glaube, das ist doch nicht so einfach. Aber Gott behüte (wenn ich daran glauben würde) -- ich werde es jetzt sicher nicht ausprobieren. :roll:

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Miko hat geschrieben: funktioniert die wxpython demo unter linux?
Ja, einwandfrei. Genauso wie die Doku. Beides wurde bei mir (Gentoo) im Paket wxpython-docs installiert.
Weiß jemand wie man gtk unter windows zum laufen bekommt?
Ich kann mich nur wiederholen: Das development-Paket von gladewin32 und dann pygtk, pygobject und pycairo sollte genügen.
ich glaube ich entscheide mich für wx. Irgendwie scheint das der beste kompromiss zwischen plattformunabhängigkeit und funktionsvielfalt zu sein. Nur die umständlichkeit stört mich etwas.
Willkommen in der GUI-Welt. So richtig "straightforward" ist kein Toolkit.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

lunar hat geschrieben:
pyStyler hat geschrieben:
Miko hat geschrieben: ......oder tkinter aber das ist ja so hässlich....
Hässlich unter Windows? Wie soll deine Anwendung denn Aussehen?
....Nein, unter Linux.

Das ist Tk unter Linux... wem's gefällt...
irgendwie habe ich wohl das lesen verlernt!
Der Miko schrieb doch, dass er gerne weiter unter Windows Programmieren will.
lunar

pyStyler hat geschrieben:
Das ist Tk unter Linux... wem's gefällt...
irgendwie habe ich wohl das lesen verlernt!
Der Miko schrieb doch, dass er gerne weiter unter Windows Programmieren will.
Auf windowskompatiblität könnte ich ja eigentlich verzichten. nur in der schule haben wir leider windows und da will ich auch häufiger dran weiterprogrammieren
Das hört sich irgendwie so an, als läge der Fokus doch deutlich auf Linux, und dann ist ein hässliches GUI Toolkit doch irgendwie suboptimal.

@gerold
Mmmh, mein Selbstversuch mit Qt4 wird sich noch etwas hinziehen: Der 58 MB große :shock: Download von Qt4 4.2.3 tröpfelt gerade mit flockigen 88 KB/s herein, mehr gibt meine Internetverbindung nicht her ;)
Antworten