Grafische Programmierung

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.
Antworten
Sync32
User
Beiträge: 141
Registriert: Mittwoch 27. Januar 2010, 12:42

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-...?!
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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.
BlackJack

@Sync32: Da wirst Du jetzt so viele verschiedene Antworten bekommen, wie es Toolkits gibt. Und bist am Ende auch nicht viel schlauer. :-)
Nebelhom
User
Beiträge: 155
Registriert: Mittwoch 19. Mai 2010, 01:31

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 :?
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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
Sync32
User
Beiträge: 141
Registriert: Mittwoch 27. Januar 2010, 12:42

Code: Alles auswählen

Wenn du OOP beherrscht sollten GUIs kein Problem mehr sein
Nicht so richtig. Ich weiß zwar, was Klassen (und Methoden/Eigenschaften) sind aber OOP-Beherschen würde ich das nicht nennen.
Vielleicht ist Tk ja doch für den Einstieg ganz gut.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

numerix hat geschrieben:Vorteil auf jeden Fall: Tkinter ist (fast) immer dabei und wirklich einfach zu programmieren.
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.

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.
BlackJack

@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
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

@Blackjack Was soll für mich sonst als "nicht mit dabei" zählen? Wenn dafür ausreicht dass ich es installieren kann sehe ich nicht wo da der von numerix angepriesene Vorteil liegen soll.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

@DasIch: Nichts anderes habe ich doch auch gesagt, nur weniger detailliert.
BlackJack

@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.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

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.
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
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.

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
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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.
Archlinux z.B. da gibts ein extra Paket, welches aber nicht python-tk o.ä. heißt, sondern i-was mit tcl.
the more they change the more they stay the same
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dav1d hat geschrieben:Archlinux z.B. da gibts ein extra Paket, welches aber nicht python-tk o.ä. heißt, sondern i-was mit tcl.
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 sein ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

@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.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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? :lol:
the more they change the more they stay the same
Antworten