QT, GTK oder Wxwindow?
QT, GTK oder Wxwindow?
Was ist am besten und warum. Ich bin gerade dabei, mich in QT einzuarbeiten.
Um Gottes Willen ich wollte auf keinen Fall den Thread abwürgen .
Leider bin ich in der GUI Programmierung nicht so bewandert, um eine objektive Einschätzung zu geben. Ich weiss nur dass alle drei Bibliotheken unter Unix / Linux / Windows und Mac verfügbar sind und somit eine gleichzeitige Entwicklung unter verschiedenen Betriebsystemen ermöglichen.
wxwindows und qt sind C++ Frameworks und somit nicht mit anderen Programmiersprachen nutzbar. gtk dagegen kann mit den verschiedensten Sprachen (Ada / C++ / C# / phyton / perl .. ) genutzt werden.
Rein subjektive finde ich die Nutzung von gtk Programmen unter Windows nicht gut, da weder Schriftarten noch Farbeinstellungen von Windows übernommen werden und sich die Programme nicht so einpassen.
Wie gesagt kann ich mich zu den programmiertechnischen Details nicht kompetent äussern also lasse ich es lieber.
eagle
Leider bin ich in der GUI Programmierung nicht so bewandert, um eine objektive Einschätzung zu geben. Ich weiss nur dass alle drei Bibliotheken unter Unix / Linux / Windows und Mac verfügbar sind und somit eine gleichzeitige Entwicklung unter verschiedenen Betriebsystemen ermöglichen.
wxwindows und qt sind C++ Frameworks und somit nicht mit anderen Programmiersprachen nutzbar. gtk dagegen kann mit den verschiedensten Sprachen (Ada / C++ / C# / phyton / perl .. ) genutzt werden.
Rein subjektive finde ich die Nutzung von gtk Programmen unter Windows nicht gut, da weder Schriftarten noch Farbeinstellungen von Windows übernommen werden und sich die Programme nicht so einpassen.
Wie gesagt kann ich mich zu den programmiertechnischen Details nicht kompetent äussern also lasse ich es lieber.
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams
Was ist denn das für ne Binsenweisheit? Natürlich sind wxWindows und Qt mit anderen Programmiersprachen nutzbar.eagle hat geschrieben:wxwindows und qt sind C++ Frameworks und somit nicht mit anderen Programmiersprachen nutzbar. gtk dagegen kann mit den verschiedensten Sprachen (Ada / C++ / C# / phyton / perl .. ) genutzt werden.
Es gibt beispielsweise Python-Bindings sowohl für Qt als auch für wxWindows. Und wxWindows ist AFIAK sogar mehr oder weniger das Standard-Toolkit für Python.
Full ACK.eagle hat geschrieben: Rein subjektive finde ich die Nutzung von gtk Programmen unter Windows nicht gut, da weder Schriftarten noch Farbeinstellungen von Windows übernommen werden und sich die Programme nicht so einpassen.
Ich denke letztendlich gibt es so etwas wie das beste GUI-Toolkit nicht. Alle haben Vor- und Nachteile.
Da kannst du sicher Recht haben, wobei die Anzahl der unterstützten Sprachen sehr deutlich für gtk spricht ....spiffi hat geschrieben: Was ist denn das für ne Binsenweisheit? Natürlich sind wxWindows und Qt mit anderen Programmiersprachen nutzbar.
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams
Ich persönlich habe mich kurz mit Wx auseinandergesetzt; die Integration ins jeweilige Betriebsystem ist recht nett. Wer mag, kann sich auf xMule2 ein paar Screenshots dazu ansehen.
Der Nachteil scheint zu sein, daß das Programmieren von GUIs in Wx weniger leicht von der Hand geht, dazu sollte man vielleicht ein RAD Tool benutzen. Davon gibt's zwei: ein ist kommerziell und scheinbar gut, und vom anderen habe ich noch nichts gehört.
GTK+ ist ein guter Einsteig, denke ich, wenn man sich nicht so gut mit Objekt Orientierung auskennt, und vielleicht noch Kenntnisse aus prozedualen Sprachen hat.
Der Nachteil scheint zu sein, daß das Programmieren von GUIs in Wx weniger leicht von der Hand geht, dazu sollte man vielleicht ein RAD Tool benutzen. Davon gibt's zwei: ein ist kommerziell und scheinbar gut, und vom anderen habe ich noch nichts gehört.
GTK+ ist ein guter Einsteig, denke ich, wenn man sich nicht so gut mit Objekt Orientierung auskennt, und vielleicht noch Kenntnisse aus prozedualen Sprachen hat.
Da ist erstmal die Lizenzfrage:
QT ist GPL, d.h. alles, was du damit schreibst, muss auch unter GPL stehen.
GTK ist LGPL, d.h. du kannst dein Programm unter deine eigene Lizenz stellen.
wxWindows hat eine eigene Lizenz, die ist aber auch ziemlich freigiebig.
Dann ist die Frage nach der Programmiersprache. Grundsätzlich gibt es zwar für alles Mögliche Wrapper, also Bibliotheken die den Zugriff umbiegen, aber die sind sehr häufig nicht auf dem aktuellen Stand und bringen zusätzliche Fehlerquellen ins Projekt.
GTK ist C,
QT ist C++
wxWindows selber ist ja noch eine Ebene "höher" angesiedelt, als QT und GTK. So nutzen wxWindows Programme unter Linux ja letztlich wiederum die GTK.
wxWindows ist wunderschön plattformübergreifend - zumindest die GTK-Ports auf Windows sind nicht ganz so berauschend. Dafür ist der GTK2-Support in wxWindows noch in der Beta-Phase - und die GTK1-Programme sehen in der heutigen Zeit eher mau aus.
Bei GTK/QT stellt sich eigentlich auch direkt die Frage ob KDE oder Gnome, denn beide Bibliotheken finden in den jeweiligen Desktop-Umgebungen sinnvolle Erweiterungen (z.B: Öffnen-Dialog, etc.)
Ergo:
Wenn du plattformübergreifend schreiben möchtest, würde ich zu wxWindows greifen.
Wenn du Programme unter eine eigene nicht-GPL Lizenz stellen möchtest, fällt QT raus.
Wenn du lieber C programmierst, würde ich GTK nehmen,
bei C++ eher QT.
QT ist GPL, d.h. alles, was du damit schreibst, muss auch unter GPL stehen.
GTK ist LGPL, d.h. du kannst dein Programm unter deine eigene Lizenz stellen.
wxWindows hat eine eigene Lizenz, die ist aber auch ziemlich freigiebig.
Dann ist die Frage nach der Programmiersprache. Grundsätzlich gibt es zwar für alles Mögliche Wrapper, also Bibliotheken die den Zugriff umbiegen, aber die sind sehr häufig nicht auf dem aktuellen Stand und bringen zusätzliche Fehlerquellen ins Projekt.
GTK ist C,
QT ist C++
wxWindows selber ist ja noch eine Ebene "höher" angesiedelt, als QT und GTK. So nutzen wxWindows Programme unter Linux ja letztlich wiederum die GTK.
wxWindows ist wunderschön plattformübergreifend - zumindest die GTK-Ports auf Windows sind nicht ganz so berauschend. Dafür ist der GTK2-Support in wxWindows noch in der Beta-Phase - und die GTK1-Programme sehen in der heutigen Zeit eher mau aus.
Bei GTK/QT stellt sich eigentlich auch direkt die Frage ob KDE oder Gnome, denn beide Bibliotheken finden in den jeweiligen Desktop-Umgebungen sinnvolle Erweiterungen (z.B: Öffnen-Dialog, etc.)
Ergo:
Wenn du plattformübergreifend schreiben möchtest, würde ich zu wxWindows greifen.
Wenn du Programme unter eine eigene nicht-GPL Lizenz stellen möchtest, fällt QT raus.
Wenn du lieber C programmierst, würde ich GTK nehmen,
bei C++ eher QT.
Es gibt doch auch andere Lizenzen für QT. Siehe den Opera Browser, der nutzt ja auch die QT Bibliothek und steht nicht unter GPL.LittleBoy hat geschrieben:Da ist erstmal die Lizenzfrage:
QT ist GPL, d.h. alles, was du damit schreibst, muss auch unter GPL stehen.
..
Wenn du Programme unter eine eigene nicht-GPL Lizenz stellen möchtest, fällt QT raus.
..
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams
Abschließend vielleicht noch der Hinweis auf einen, wie mir scheint, recht gelungener Vergleich:
GUI Toolkits for The X Window System
GUI Toolkits for The X Window System
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Hallo,
das ist sicher eine ähnliche Streifrage wie die Frage nach dem WM/DE oder der Distribution. Trotzdem sind diese Fragen für den Anfänger, auf dem jeweiligen Gebiet, oft schwer zu beantworten und können einem schlaflose Nächte bereiten.
Ich habe mir diese Frage auch bestimmt 1/2 Jahr lang gestellt bis ich mich entgültig entschieden hatte. Hier mal meine Erfahrungen:
Es gibt für jedes Toolkit verschiedene Sprachbindungen, wobei wahrscheinlich 90% immer mit der jeweiligen 'Standardsprache' programmiert wird.
Daraus folgt schonmal QT -> C++; GTK+ -> C; WxWindows -> C++
Die erste Frage dürfte also schonmal sein, welche Programmiersprache dir am besten gefällt. Wenn es keine der angegebenen Sprachen ist würde ich sagen hat GTK+ wahrscheinlich die beste Unterstützung von anderen Sprachen, ich war zum Beispiel positiv überrascht als ich in einem anderen Forum gelesen haben wie einfach man mit Perl+GTK ein Fenster auf den Desktop Zaubern kann.
Wichtig ist auch zu wissen das _jedes_ dieser Toolkit Objekt Orientiert ist!
Wichtig könnte auch die Lizenzfrage sein. Durch LGPL kannst du deine GTK+ Programme unter eine beliebige Lizenz stellen. QT steht unter der GPL (wenn du nicht eine extrem teure Version kaufen willst), d.h. deine Programme müssen auch unter der GPL stehen, das sollte aber eigentlich kein Problem sein, oder...
Man könnte das ganze auch als eine Frage der Desktopenvironment sehen. Das ist aber kein Problem solange du nur GTK+ oder nur QT verwendest. Beide Programme werden sehr gut und auch schnell laufen. Kritisch wird es erst wenn du DE spezifische Libs verwendest (KDElibs bei QT und gnome-libs bei GTK), dann merkt man natürlich wenn man unter gnome das halbe KDE nachladen muß oder umgekehrt und die portabilität ist dann auch eingeschränkt!
Meine Entscheidung viel am Ende auf GTK+, warum?
- Mir gefällt C um einiges besser als C++ und die verschiedenen Sprachbindungen bei GTK+ fand ich auch ganz interessant.
- Verwende ich bisher ausschließlich GTK Anwendungen und als DE meistens gnome
- Gnome/GTK gehören zum GNU Projekt und C ist auch neben scheme die offizielle Programmiersprache von GNU (zugegeben ein ziemlich 'persönliches' Argument )
- Mir gefällt der Aufbau der GUI, auch und gerade mit helfern wie glade, bei GTK+ um einiges besser als bei QT.
So, das wars erstmal, damit solltest du einen groben Überblich haben (wenn du aber mal etwas googlst findest du einige Streitgespräche und Diskussionen um dieses Thema)
das ist sicher eine ähnliche Streifrage wie die Frage nach dem WM/DE oder der Distribution. Trotzdem sind diese Fragen für den Anfänger, auf dem jeweiligen Gebiet, oft schwer zu beantworten und können einem schlaflose Nächte bereiten.
Ich habe mir diese Frage auch bestimmt 1/2 Jahr lang gestellt bis ich mich entgültig entschieden hatte. Hier mal meine Erfahrungen:
Es gibt für jedes Toolkit verschiedene Sprachbindungen, wobei wahrscheinlich 90% immer mit der jeweiligen 'Standardsprache' programmiert wird.
Daraus folgt schonmal QT -> C++; GTK+ -> C; WxWindows -> C++
Die erste Frage dürfte also schonmal sein, welche Programmiersprache dir am besten gefällt. Wenn es keine der angegebenen Sprachen ist würde ich sagen hat GTK+ wahrscheinlich die beste Unterstützung von anderen Sprachen, ich war zum Beispiel positiv überrascht als ich in einem anderen Forum gelesen haben wie einfach man mit Perl+GTK ein Fenster auf den Desktop Zaubern kann.
Wichtig ist auch zu wissen das _jedes_ dieser Toolkit Objekt Orientiert ist!
Wichtig könnte auch die Lizenzfrage sein. Durch LGPL kannst du deine GTK+ Programme unter eine beliebige Lizenz stellen. QT steht unter der GPL (wenn du nicht eine extrem teure Version kaufen willst), d.h. deine Programme müssen auch unter der GPL stehen, das sollte aber eigentlich kein Problem sein, oder...
Man könnte das ganze auch als eine Frage der Desktopenvironment sehen. Das ist aber kein Problem solange du nur GTK+ oder nur QT verwendest. Beide Programme werden sehr gut und auch schnell laufen. Kritisch wird es erst wenn du DE spezifische Libs verwendest (KDElibs bei QT und gnome-libs bei GTK), dann merkt man natürlich wenn man unter gnome das halbe KDE nachladen muß oder umgekehrt und die portabilität ist dann auch eingeschränkt!
Meine Entscheidung viel am Ende auf GTK+, warum?
- Mir gefällt C um einiges besser als C++ und die verschiedenen Sprachbindungen bei GTK+ fand ich auch ganz interessant.
- Verwende ich bisher ausschließlich GTK Anwendungen und als DE meistens gnome
- Gnome/GTK gehören zum GNU Projekt und C ist auch neben scheme die offizielle Programmiersprache von GNU (zugegeben ein ziemlich 'persönliches' Argument )
- Mir gefällt der Aufbau der GUI, auch und gerade mit helfern wie glade, bei GTK+ um einiges besser als bei QT.
So, das wars erstmal, damit solltest du einen groben Überblich haben (wenn du aber mal etwas googlst findest du einige Streitgespräche und Diskussionen um dieses Thema)
Zuletzt geändert von BeS am 19.10.2003 14:03:55, insgesamt 3-mal geändert.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
ja, stimmt! Ich habe es mit wxBasic verwechseltspiffi hat geschrieben:Pidde? wxWindows -> C++BeS hat geschrieben:WxWindows -> Basic-Ähnliche Sprache (?).
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
Zum Look (wenns noch nicht gesagt worden ist, hab den Überblick verloren) von GTK+ unter Windows http://gtk-wimp.sourceforge.net/
C++ bindings für GTK+ http://gtkmm.sf.net
Da ich persöhnlich C++ nicht mag und mir der Programmier Still von GTK+ (gobject c)gefällt gibt es für mich nur einen Gewinner: GTK+
Blademir
C++ bindings für GTK+ http://gtkmm.sf.net
Da ich persöhnlich C++ nicht mag und mir der Programmier Still von GTK+ (gobject c)gefällt gibt es für mich nur einen Gewinner: GTK+
Blademir