Hallo.
Ich möchte nun mal nicht nur in der Konsole sondern auch mal (z.B. ein Vokabeltrainer) auf grafischer Ebene programmieren.
Womit sollte ich anfangen?
Mir wurde gesagt, dass Tkinter für die Tonne ist und ich gleich zu wxPython o.ä. greifen sollte.
Was meint ihr? Was ist gut fürn Anfang-...?!
Grafische Programmierung
Nun gehöre ich zwar zu der kleinen Schar ausgewiesener Tkinter-Freunde und bin insofern da nicht objektiv, aber das werden die anderen Stimmen, die noch kommen, auch nicht sein ...
Für die ersten Schritte mit einem GUI ist Tkinter gewiss eine gute Wahl und wenn du mit Python 3.1 arbeitest, dann sieht es auch ganz passabel aus. Die Anzahl der fertigen Widgets ist begrenzter als bei anderen Toolkits, aber für Vokabeltrainer (und auch weit mehr) reicht es allemal. Vorteil auf jeden Fall: Tkinter ist (fast) immer dabei und wirklich einfach zu programmieren. Und wenn es dir nach ein paar Wochen (Tagen oder auch Stunden ...) nicht mehr genügt, dann dürftest du mit den Erfahrungen, die mit der GUI-Programmierung dann gemacht hast, auch kein Problem haben, zu einem anderen Toolkit zu wechseln.
Für die ersten Schritte mit einem GUI ist Tkinter gewiss eine gute Wahl und wenn du mit Python 3.1 arbeitest, dann sieht es auch ganz passabel aus. Die Anzahl der fertigen Widgets ist begrenzter als bei anderen Toolkits, aber für Vokabeltrainer (und auch weit mehr) reicht es allemal. Vorteil auf jeden Fall: Tkinter ist (fast) immer dabei und wirklich einfach zu programmieren. Und wenn es dir nach ein paar Wochen (Tagen oder auch Stunden ...) nicht mehr genügt, dann dürftest du mit den Erfahrungen, die mit der GUI-Programmierung dann gemacht hast, auch kein Problem haben, zu einem anderen Toolkit zu wechseln.
@Sync32: Da wirst Du jetzt so viele verschiedene Antworten bekommen, wie es Toolkits gibt. Und bist am Ende auch nicht viel schlauer.
Die meisten toolkits nehmen sich da nicht viel und haben alle ihre vor- und nachteile.
Tkinter wuerde ich auch lassen. Schau halt mal in der GUI toolkits rubrik hier im Forum nach beispiel code und waehle eins aus, das dir zusagt und versuche dran zu bleiben.
Ich habe es am anfang mit PyQt versucht, bin aber auf grund von anfaengerdummheit nicht weiter gekommen und in wxPython gings dann. Bei dir kann das genau andersrum sein.
Waehle einfach eins und probiers (aber nicht Tkinter, obwohl es da bestimmt auch leute gibt, die mir widersprechen werden).
Falls du nach Pros und Cons fuer die einzelnen toolkits suchst, dann benutz mal die suchfunktion. Die frage wurde bestimmt schon mal gestellt... oder google (oder binge) es mal.
Hope that helps.
EDIT: Wieder zu langsam
Tkinter wuerde ich auch lassen. Schau halt mal in der GUI toolkits rubrik hier im Forum nach beispiel code und waehle eins aus, das dir zusagt und versuche dran zu bleiben.
Ich habe es am anfang mit PyQt versucht, bin aber auf grund von anfaengerdummheit nicht weiter gekommen und in wxPython gings dann. Bei dir kann das genau andersrum sein.
Waehle einfach eins und probiers (aber nicht Tkinter, obwohl es da bestimmt auch leute gibt, die mir widersprechen werden).
Falls du nach Pros und Cons fuer die einzelnen toolkits suchst, dann benutz mal die suchfunktion. Die frage wurde bestimmt schon mal gestellt... oder google (oder binge) es mal.
Hope that helps.
EDIT: Wieder zu langsam
Wenn du OOP beherrscht sollten GUIs kein Problem mehr sein, ich empfehle dir wxpython, andere werden dir aber auch etwas anderes empfehlen.
the more they change the more they stay the same
Code: Alles auswählen
Wenn du OOP beherrscht sollten GUIs kein Problem mehr sein
Vielleicht ist Tk ja doch für den Einstieg ganz gut.
Immer dabei ist es nur unter Windows unter Linux (und OS X?) ist es in der Regel schon nicht mehr dabei. Inwiefern es einfach ist Tkinter zu nutzen ist natürlich auch so eine Sache.numerix hat geschrieben:Vorteil auf jeden Fall: Tkinter ist (fast) immer dabei und wirklich einfach zu programmieren.
Sicherlich ist es am Anfang einfach zu nutzen aber sobald es keine triviale Anwendung ist sind Slaves, vernünftige parallelisierte Ausführung und Kommunikation mit anderen Anwendungen über IPC, Sockets oder einfach nur die Kommunikation mit einer Datenbank problematisch. Desweiteren hat man keinen GUI Designer was Design der Oberfläche recht zäh macht mal abgesehen davon dass diese Art von Frontend Code prinzipiell schon nicht sonderlich elegant ist, da dazu die deklarative Syntax fehlt.
Bei GTK und Qt gibt es für all diese Probleme sehr elegante Lösungen und man hat eine größere Anzahl von Usern auf deren geteiltes Wissen man zurückgreifen kann.
@DasIch: Bei welcher Linux-Distribution ist `Tkinter` denn nicht dabei? Sag jetzt bitte nicht, dass ein separat installierbares Paket, damit man Python auch auf Servern ohne X installieren kann ohne die X-Bibliotheken mitziehen zu müssen, für Dich als "nicht mit dabei" zählt.
@DasIch: Alles was man mit wenigen Mausklicks aus dem normalen Paketrepository einer Distribution installieren kann, ist IMHO "dabei". "Nicht dabei" wären Sachen, die mit erheblich mehr Aufwand installiert werden müssen und nicht vom Distributor gepflegt werden.
Auch wenn ich jetzt vielleicht pedantisch klinge, aber auch hier fehlt die Information, welches Betriebssystem verwendet wird. Unter Windows würde ich z.B. bevorzugt Qt oder eventuell sogar die nativen Widgets von Windows nutzen. GTK wäre da meine letzte Wahl. Unter Linux kann man Tkinter, GTK, Qt oder wxWidgets verwenden.
Rein vom technischen Standpunkt würde ich Qt verwenden. Es bietet die umfangreichsten Widgets, sieht unter den meisten Oberflächen nativ aus und ist relativ einfach zu erlernen. Allerdings kann es auch gute Gründe geben, andere Toolkits zu verwenden.
Wenn man ein Toolkit beherrscht heißt das allerdings nicht zwangsweise, dass man automatisch auch mit allen anderen zurecht kommt. Es gibt doch erhebliche Unterschiede.
Rein vom technischen Standpunkt würde ich Qt verwenden. Es bietet die umfangreichsten Widgets, sieht unter den meisten Oberflächen nativ aus und ist relativ einfach zu erlernen. Allerdings kann es auch gute Gründe geben, andere Toolkits zu verwenden.
Wenn man ein Toolkit beherrscht heißt das allerdings nicht zwangsweise, dass man automatisch auch mit allen anderen zurecht kommt. Es gibt doch erhebliche Unterschiede.
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Huch? Also ich muss mich jetzt auch hinter DasIch stellen, denn Pakete wie python-tk (oder ähnliches) zähle auch ich als "nicht dabei". Wenn du es nachinstallierst, dann klar, ist es dabei. Aber dann wäre sogesehen PyGTK "dabeier" bei Ubuntu als Tkinter, denn bei Ubuntu ist nichtmal Tk in der Standardinstallation, von Tkinter mal ganz zu schweigen.BlackJack hat geschrieben:@DasIch: Bei welcher Linux-Distribution ist `Tkinter` denn nicht dabei? Sag jetzt bitte nicht, dass ein separat installierbares Paket, damit man Python auch auf Servern ohne X installieren kann ohne die X-Bibliotheken mitziehen zu müssen, für Dich als "nicht mit dabei" zählt.
Wenn man "dabei" als "im Paketmanagement vorhanden" definiert, dann geben sich Tkinter, wxPython, PyQt und PyGTK natürlich nix, sind in jeder nennenswerten Distribution "dabei".
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Archlinux z.B. da gibts ein extra Paket, welches aber nicht python-tk o.ä. heißt, sondern i-was mit tcl.BlackJack hat geschrieben:@DasIch: Bei welcher Linux-Distribution ist `Tkinter` denn nicht dabei? Sag jetzt bitte nicht, dass ein separat installierbares Paket, damit man Python auch auf Servern ohne X installieren kann ohne die X-Bibliotheken mitziehen zu müssen, für Dich als "nicht mit dabei" zählt.
the more they change the more they stay the same
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich denke das hat BlackJack durchaus gemeint. Bei DasIch ist es ja bekannt dass er Arch nutzt, also wird ihm dieser Zusammenhang sicherlich nicht neu seinDav1d hat geschrieben:Archlinux z.B. da gibts ein extra Paket, welches aber nicht python-tk o.ä. heißt, sondern i-was mit tcl.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@Leonidas: Nun, dann stelle ich mich hinter BlackJack und Numerix. Unter Windows ist Tkinter das einzige Toolkit, welches in einer normalen Python-Installation ohne Nacharbeit verwendet werden kann. PyQt4, wxWidgets und pyGtk müssen nachinstalliert, und bei Verteilung des Programms mitgeliefert werden, und zwar bevorzugt so, dass auch ein ganz normaler Nutzer auf die übliche Windows-Art per Doppelklick ein lauffähiges Programm erhält.
Unter Linux ist im Zweifelsfall gar kein GUI-Toolkit vorinstalliert, aber die Installation ist dank Paketverwaltung trivial, und zwar auch für ganz normale Nutzer. Insofern geben sich die GUI-Toolkits unter Linux im Bezug auf den Installationsaufwand tatsächlich nichts, das genau ist ja auch Zweck der Paketverwaltung.
@Dav1d: Arch hat kein eigenes Paket für Tkinter. Arch nimmt es lediglich mit den Abhängigkeiten nicht so genau, so dass Tk im Regelfall nicht installiert ist, was die Verwendung von Tkinter natürlich unmöglich macht.
Unter Linux ist im Zweifelsfall gar kein GUI-Toolkit vorinstalliert, aber die Installation ist dank Paketverwaltung trivial, und zwar auch für ganz normale Nutzer. Insofern geben sich die GUI-Toolkits unter Linux im Bezug auf den Installationsaufwand tatsächlich nichts, das genau ist ja auch Zweck der Paketverwaltung.
@Dav1d: Arch hat kein eigenes Paket für Tkinter. Arch nimmt es lediglich mit den Abhängigkeiten nicht so genau, so dass Tk im Regelfall nicht installiert ist, was die Verwendung von Tkinter natürlich unmöglich macht.
Unmöglich? Auf meinem "großen PC" hab' ich Tkinter installiert und es läuft, falls es wen interessiert kann ich gerne mal nachschaun wie es heißt.
PS: Verwendet DasIch nicht Gentoo?
PS: Verwendet DasIch nicht Gentoo?
the more they change the more they stay the same