GUI Toolkit welches ist das richtige?

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
bankkind
User
Beiträge: 106
Registriert: Freitag 14. September 2007, 23:02
Wohnort: Teltow
Kontaktdaten:

Du hast uns nicht gesagt, unter welchen Betriebssystemen dein Programm hauptsächlich laufen soll.
Das Programm soll hauptsächlich auf einem Windows Desktop laufen, aber da auf meinem Notebook Debian(mit GNOME) ist, denke ich ich würde es auch dort nutzen.
lunar

Erwin hat geschrieben:
lunar hat geschrieben: Tkinter fehlen verschiedene komplexere Widgets wie z.B. Kalender, Datumsfelder, Rich-Text-Editor, HTML-Viewer, etc. Natürlich kann man diese auf Umwegen nachrüsten, in dem sie selbst programmiert, nur ist das extrem aufwändig. Auch sind die vorhandenen Tk-Widgets nicht so mächtig wie ihre Pendants in anderen Toolkits. Hinzu kommt, das Tk bis zum aktuellen Release keine Unterstützung für natives Look n' Feel hatte, Tk-Anwendungen übernahmen z.B. nicht den Windows XP oder Windows Vista Stil.
Was meinst Du damit, dass die Pendants nicht so mächtig sind?
Bei Qt4 z.B. sind Toolbars automatisch frei platzierbar, sowohl als Toolbar als auch als Dock Window. Das Speichern der Positionen geschieht (fast) automatisch. Tkinter Toolbars können das nicht.

Beispiele bei anderen Toolkits kann ich dir nicht nennen, ich nutze nur Qt4. Deswegen sind meine Kenntnisse in Tkinter auch recht limitiert.

Als Vergleich reicht es aber eigentlich schon, sich mal die Liste der Tkinter-Widgets anzusehen, und mit der Liste der verfügbaren Qt4-Widgets zu vergleichen. Da fällt einem schnell auf, das Tkinter da weit weniger bietet. Für viele Anwendungen ist das nicht unbedingt dramatisch, bei komplexeren Anwendungen allerdings schon.
Also so weit ich das sehen konnte, passt sich Tkinter durchaus dem Stil des aktuellen Destops an. Habe es jetzt aber nur unter Linux getestet.
Sicher? Tkinter-Programme (Gentoo) sind bei mir anders dargestellt. Sie verwenden Motif zum Zeichnen (zumindest sehen sie so aus), was sich am schärfsten an mangelnder Kantenglättung der Schriften äußert.

Unter Windows können Tkinter-Programme den XP-Stil nicht übernehmen, sprich selbst wenn das Luna-Theme aktiviert ist, sehen die Buttons nicht so aus.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hmm, das kann sein. Ich hatte irgendwo im Hinterkopf, dass da jemand im IRC deswegen bei Riverbank angefragt hat - aber ich weiß nicht, was da dabei rausgekommen ist.

Andererseits im FAQ:
FAQ hat geschrieben:Do I need the commercial version of PyQt?

The easiest way to answer this is to ask "Am I using the commercial edition of Qt?". If so then you also need the commercial version of PyQt. If you are using the GPL version of Qt, then you only need the GPL version of PyQt.
Also richtet sich Riverbank nach Trolltech.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Aus dem FAQ-Eintrag lese ich genau das andere heraus: Die erwähnen nur die GPL-Version von Qt und sagen, dass PyQt damit auch der (Original-)GPL (ohne irgendwelche Ausnahmen) unterliegt und das würde genau die Ausnahme von Qt, das auch andere OS-Lizenzen möglich sind, ausschließen.

Man sollte also in jedem Fall nochmal schriftlich (und damit verbindlich) nachfragen, wenn das sonst ein Problem werden könnte.

Stefan
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

sma hat geschrieben:Aus dem FAQ-Eintrag lese ich genau das andere heraus: Die erwähnen nur die GPL-Version von Qt und sagen, dass PyQt damit auch der (Original-)GPL (ohne irgendwelche Ausnahmen) unterliegt und das würde genau die Ausnahme von Qt, das auch andere OS-Lizenzen möglich sind, ausschließen.
Das kann nicht sein, da es Qt nur mit propietäter Lizenz und GPL/QPL gibt. Wenn ich ein BSD-Programm schreibe und GPL-Qt benutzen will (was ich inzwischen darf), dann folgt dem Eintrag dass ich GPL-PyQt nutzen darf.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Erwin
User
Beiträge: 141
Registriert: Donnerstag 9. Juni 2005, 08:51

lunar hat geschrieben: Unter Windows können Tkinter-Programme den XP-Stil nicht übernehmen, sprich selbst wenn das Luna-Theme aktiviert ist, sehen die Buttons nicht so aus.
Achso, die Buttons?
Ich hatte an das Fenster gedacht.
Ja, die Buttons sehen einfach Eckig aus.
Als nicht abgerundet etc.
Aber mir gefällt es so und achte auch nicht so sehr darauf.

Kann man das bei den anderen auch so einstellen, dass es eine selbst ausgewählte Form annimmt, egal unter welchem Betriebs-System es läuft?
Ich mache nie einen Fehler Zweimal.
Schließlich ist die Auswahl ja groß genug.
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Erwin hat geschrieben:Kann man das bei den anderen auch so einstellen, dass es eine selbst ausgewählte Form annimmt, egal unter welchem Betriebs-System es läuft?
Naja, ich habe noch nicht viel mit wxPython gemacht. (Hab auch erst Tkinter genommen) Aber generell kannst Du ein Widget, gleich ob Fenster, Button etc. so anzeigen lassen, wie Du willst. Ob "native-Look" oder auch nicht. Bei wxPython kann man sich die Widgets sogar selbst zeichnen. Also ganz unabhängig sein eigenes Ding machen. Ich empfehle ja nkoehrings Projekt immer gern weiter: Er hat die Vista-Navigation-Leiste nachgebaut.
noise
User
Beiträge: 62
Registriert: Donnerstag 7. Februar 2008, 00:15

Leonidas hat geschrieben:
sma hat geschrieben:Bei Qt 4 unterliegt AFAIK der GPL oder erfordert eine gesonderte kommerzielle Lizenz.
Stimmt nicht mehr, siehe dieser Thread, den es hier letztens gab.
Nope, wer es kommerziell nutzen möchte muss richtig löhnen. Und zwar für QT und PyQT!
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

noise hat geschrieben:
Leonidas hat geschrieben:
sma hat geschrieben:Bei Qt 4 unterliegt AFAIK der GPL oder erfordert eine gesonderte kommerzielle Lizenz.
Stimmt nicht mehr, siehe dieser Thread, den es hier letztens gab.
Nope, wer es kommerziell nutzen möchte muss richtig löhnen. Und zwar für QT und PyQT!
Wer proprietäre Software entwickelt hat nichts anderes verdient. :roll: Und für kommerzielle Opensource Software fallen afaik keine Kosten an.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
noise
User
Beiträge: 62
Registriert: Donnerstag 7. Februar 2008, 00:15

veers hat geschrieben:
noise hat geschrieben:
Leonidas hat geschrieben:
sma hat geschrieben:Bei Qt 4 unterliegt AFAIK der GPL oder erfordert eine gesonderte kommerzielle Lizenz.
Stimmt nicht mehr, siehe dieser Thread, den es hier letztens gab.
Nope, wer es kommerziell nutzen möchte muss richtig löhnen. Und zwar für QT und PyQT!
Wer proprietäre Software entwickelt hat nichts anderes verdient. :roll: Und für kommerzielle Opensource Software fallen afaik keine Kosten an.
Wenn du für den Support Geld verdienst, klar. Wenn du für das distributieren Geld nimmst, klar. Und der source offen ist. Das habe ich auch nicht bestritten.
http://trolltech.com/company/model
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

noise hat geschrieben:
Leonidas hat geschrieben:
sma hat geschrieben:Bei Qt 4 unterliegt AFAIK der GPL oder erfordert eine gesonderte kommerzielle Lizenz.
Stimmt nicht mehr, siehe dieser Thread, den es hier letztens gab.
Nope, wer es kommerziell nutzen möchte muss richtig löhnen. Und zwar für QT und PyQT!
Habe ich etwas anderes behauptet? Ich habe nur gemeint, dass der Code nicht mehr nur unter GPL stehen darf - es reicht wenn er freie Software ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
noise
User
Beiträge: 62
Registriert: Donnerstag 7. Februar 2008, 00:15

Hi Leonidas,
ne sorry war mein Fehler. Hab dich falsch verstanden.
Gnushi
User
Beiträge: 77
Registriert: Dienstag 12. Dezember 2006, 09:49

Hi!
veers hat geschrieben:Wer proprietäre Software entwickelt hat nichts anderes verdient. :roll: Und für kommerzielle Opensource Software fallen afaik keine Kosten an.
So lese ich http://trolltech.no/downloads/index auch:
"""Which Downloads Are Right for You?
Using a Dual Licensing Business Model, Trolltech provides its Qt and Qtopia products under commercial licenses for proprietary development and under the GPL and similar Open Source licenses for free and open source development."""

Allerdings stört mich hierbei, dass das Wort "Commercial" verwendet wird. Schließlich kann man auch kommerzielle Freie Software (vgl. http://www.gnu.de/documents/gpl-3.0.de.html) schreiben.

Gruß

Gnushi
noise
User
Beiträge: 62
Registriert: Donnerstag 7. Februar 2008, 00:15

Naja "under the GPL and similar Open Source licenses for free and open source development." muss man ein wenig genauer betrachten. veers hat insofern schon recht, dass du deine OpenSource software "Verkaufen" - bzw. für den Support und das verteilen auf Medien - darfst, solange du den source offen legst. Das schließt ja die GPL nicht aus.

Oder sehe ich das vielleicht jetzt total verkehrt?
noise
User
Beiträge: 62
Registriert: Donnerstag 7. Februar 2008, 00:15

noise hat geschrieben:Oder sehe ich das vielleicht jetzt total verkehrt?
Ne hab noch mal in die GPL gerade geschaut. Passt schon so wie ich das geschrieben habe. Es ist dabei so das die Kommerzielle Nutzung hierbei ausdrücklich erlaubt ist.

Hatte ich nicht mehr so auf den Plan, da ich mit der GPL nicht viel am Hut habe und mehr der MIT/BSD Typ bin :D

BTW: Sorry für den doppel post.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

"commercial licenses for proprietary development"

Außerdem geht es nicht um kommerzielle Entwicklung, sondern die Lizenz ist kommerziell wenn du proprietäres entwickelst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Ich hab jetzt nicht alle Beiträge gelesen, möchte aber meinen Senf noch unterrühren.

Meine Meinungen:

Tkinter:
Vorteil: Ist bei (fast) jedem Python dabei
Nachteil: Hässlich (meiner Meinung nach) und verhältnismäßig wenige Möglichkeiten

GTK:
Umständlich zu programmieren und anscheinend ein ziemliches Frickelwerk aus C mit dem Versuch das nachträglich in Objekte zu packen. Mehr Funktionalität als Tkinter, aber immer noch viel Handarbeit nötig

Qt4:
Umfangreiches Framework und gerade mit den Python Bindings recht gut zu programmieren. Neben den GUI Klassen gibt es auch noch weitere Klassen für XML, SQL, Netzwerk und einiges andere.


Ich habe auch eine Weile überlegt und mich letztlich dafür entschieden Qt4 zu verwenden. Ich verwende zwar selbst Gnome als Desktop, aber das hindert mich ja nicht daran Qt4 Anwendungen zu starten. Die zusätzlichen Klassen sind bei Python eigentlich überflüssig, bei C++ aber schon sinnvoll. Ich werde bei mir wenn möglich die Qt4 Klassen verwenden um später die Möglichkeit zu haben das Ganze auch nach C++ portieren zu können falls es nötig ist.

Ich habe mir sogar kürzlich ein Buch gekauft das ich empfehlen kann. Ist zwar in englisch, aber gut geschrieben. Normalerweise bin ich kein Fan von englischer Literatur, aber damit kommt ich gut zurecht

Rapid GUI Programming with Python and Qt
The Definitive Guide to PyQt Programming
Buch - Autor(en): Mark Summerfield
Verlag: Prentice Hall International
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

burli hat geschrieben:GTK:
Umständlich zu programmieren und anscheinend ein ziemliches Frickelwerk aus C mit dem Versuch das nachträglich in Objekte zu packen. Mehr Funktionalität als Tkinter, aber immer noch viel Handarbeit nötig
Das stimmt schlichtweg nicht. Es ist nicht schwerer oder leichter zu programmieren als andere GUI-Libs (teils komplizierter, teils einfacher, hängt von der Aufgabe ab) und das ziemliche Frickelwerk was du meinst ist eben Objektorientiertes C - kann dir aber unter Python vollständig egal sein, denn dort hält es sich ganz normal an das Objektmodell von Python. Zudem hast du noch mit gnome-python(-extras, -desktop) recht viele zusätzliche Widgets die dir Zeit sparen.

GTK ist sicher nicht der Weisheit letzter Schluss, aber das was du behauptest ist unter Python FUD.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

burli hat geschrieben:Ich habe auch eine Weile überlegt und mich letztlich dafür entschieden Qt4 zu verwenden.
Zu dieser Wahl kann ich dir nur gratulieren ;)
Ich verwende zwar selbst Gnome als Desktop
Zu dieser eher weniger ;)
Die zusätzlichen Klassen sind bei Python eigentlich überflüssig.
Letztens gab es hier das Problem, einen Prozess unter Anzeige eines Qt4-Fortschrittdialogs nicht-blockierend aufzurufen: http://www.python-forum.de/topic-13448.html?highlight=

Daran kann man erkennen, dass man die Qt4-Klassen auch verwenden sollte, weil sie optimal mit den GUI-Widgets interagieren.
Ich werde bei mir wenn möglich die Qt4 Klassen verwenden um später die Möglichkeit zu haben das Ganze auch nach C++ portieren zu können falls es nötig ist.
Aus welchen Grund sollte man das tun?
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Leonidas hat geschrieben: GTK ist sicher nicht der Weisheit letzter Schluss, aber das was du behauptest ist unter Python FUD.
Unter Python vielleicht. Aber ich hab mir schon ein paar Sachen angeschaut und bei denen haben sich mir die Nackenhaare aufgestellt
lunar hat geschrieben: Zu dieser eher weniger
Ich war lange Zeit der Meinung KDE sei die bessere Wahl. Mittlerweile bin ich es aber leid. Mit jedem KDE Desktop, egal ob Suse, Debian oder Kubuntu, hatte ich die gleichen Probleme. Programme starten erst beim 2. oder 3. Versucht, jeden Tag mehrfach den Crashmanager gesehen (das passiert sogar manchmal unter Gnome wenn ich mal ein KDE Programm starte). Außerdem ist mir KDE zu bunt und sieht zu sehr nach dem Versuch aus Windows nachzubilden.

Alle anderen Desktops sind mir zu spartanisch. Gnome ist sicher nicht der Weisheit letzter Schluss, aber für mich die geeignete Mischung.

Trotzdem bevorzuge ich Qt4 für meine eigenen Projekte weil die etwas weiter über die üblichen kleinen Tools mit 1-2 Fenstern hinausgehen. Da hat Qt einfach die meisten Möglichkeiten und ist nach meinem Empfinden auch robuster
Antworten