Hallo zusammen, ich bin zur Zeit auf der Suche nach einem cross-platform GUI Toolkit fuer ein kommerzielles Projekt (C/C++). Als Plattformen sollten mindestens Linux, Windows und MacOS X unterstuetzt werden. Meine GUI Erfahrung beschraenkt sich dabei auf AWT (Java) und ein C++ Toolkit von StarDivision (lang ists her). Mit C++ kenne ich mich meiner Meinung nach ganz gut aus... Vielleicht koennt Ihr mir bei folgenden Fragen beantworten:
-Welche Toolkits favorisiert Ihr ? (Ich habe bisher QT, GTK+, wxWidgets und wideStudio in Betracht gezogen)
-Was muss ich beim Thema Licensing beachten ? Insbesondere interessiert mich die Frage, ob ich Probleme bekomme mit GPL/LGPL/GPL exception lizensierter SW, wenn ich meine Software verkaufen will.
-Welche Toolkits haben das beste (native) LookAndFeel ? (Insbesondere auf Windows und MacOS)
GUI Designer und aehnlichen Klimbim interessieren mich nicht. Java oder C# kommen nicht in Frage; das Toolkit muss naemlich performant sein und sich mit einem C/C++ Programm linken lassen.
Danke fuer Eure Hilfe !
Gruesse
Frank
Frank Gerlach schrieb am Sun, Feb 10, 2008 at 12:12:50AM +0100 folgendes:
Hi,
-Welche Toolkits favorisiert Ihr ? (Ich habe bisher QT, GTK+, wxWidgets und wideStudio in Betracht gezogen)
also ich persönlich bin immer wieder ganz begeistert von QT. Die gut ,,designeten'' Klassen und die sehr gute Dokumentation sind immer wieder eine Freude. Die Plattformunabhänigkeit (inklusive Plattform-Look&Feel, make-Framework, etc.) bekommst du quasi out-of-the-box dazu. Seit einiger Zeit gibt es ja auch direkt von Trolltech eine Ecplise-Plugin, falls man auf IDE steht.
Problematisch ist in deinem Falle vielleicht die Lizenz. Wenn du mit der open-source-Varianten entwickelst, muss das fertige Programm wohl auch wieder open-source sein (was dich ja nicht daran hindern sollte, trotzdem Geld dafür zu verlangen). Ansonsten musst du erstmal eine Lizenz kaufen.
Da QT in C++ implementiert ist und zum Kompilieren auch noch eine kleines extra Tool (moc = Metc Object Compiler) benötigt, halte ich es subjektiv für etwas langsamer, als reine C-Toolkits (sowohl beim Übersetzen als auch zur Laufzeit). Die Freude beim Programmieren macht das aber mehr als wett ;)
Marcus
2008/2/10 Marcus Obst marcus.obst@s2003.tu-chemnitz.de:
also ich persönlich bin immer wieder ganz begeistert von QT.
Ich habe mir vor kurzem mal PyQT angeschaut und finde das auch hervorragend.
Viele Grüße, Torsten
hallo,
qt finde ich aktuell als die sicherste basis, denn es ist schon lange auf dem markt, inzwischen version 4.x denke auch mal an die basis sun-solaris/ open-solaris (sparc & intel) und aix.- hp-ux verliert an boden, denn die machen ihren focus auf consumer-markt, nicht mehr high-end. gtk+ /wxwidgets waeren eine weitere moeglichkeit, wenn qt den finanziellen rahmen sprengen wuerde. der alte cde soll laut sun mit solaris 11.x nicht mehr unterstuetzt werden
tk ist noch ein aufsatz, der bei vielen skrit-sprachen verwendet wird; gt is da aber erheblich eleganter und stimmiger.
--> sollen nur einige dialogboxen aufpoppen oder eine ausgefelte menue-struktur mit masken ?
(ich selbst administriere sun-solaris & hp-ux; linix & mac-os privat am rand, habe eine kleine blade1000 )
gruesse peter
-------- Original-Nachricht --------
Datum: Sun, 10 Feb 2008 00:12:50 +0100 Von: "Frank Gerlach" frankgerlach@gmail.com An: "Linux-User-Group Dresden" lug-dd@mailman.schlittermann.de, lugs@lug-s.org, "Dirk Schönfuß" d.schoenfuss@m2any.com, "Frank Pirnke" f.pirnke@googlemail.com Betreff: Cross-Platform GUI Toolkits - Erfahrungen ?
Hallo zusammen, ich bin zur Zeit auf der Suche nach einem cross-platform GUI Toolkit fuer ein kommerzielles Projekt (C/C++). Als Plattformen sollten mindestens Linux, Windows und MacOS X unterstuetzt werden. Meine GUI Erfahrung beschraenkt sich dabei auf AWT (Java) und ein C++ Toolkit von StarDivision (lang ists her). Mit C++ kenne ich mich meiner Meinung nach ganz gut aus... Vielleicht koennt Ihr mir bei folgenden Fragen beantworten:
-Welche Toolkits favorisiert Ihr ? (Ich habe bisher QT, GTK+, wxWidgets und wideStudio in Betracht gezogen)
-Was muss ich beim Thema Licensing beachten ? Insbesondere interessiert mich die Frage, ob ich Probleme bekomme mit GPL/LGPL/GPL exception lizensierter SW, wenn ich meine Software verkaufen will.
-Welche Toolkits haben das beste (native) LookAndFeel ? (Insbesondere auf Windows und MacOS)
GUI Designer und aehnlichen Klimbim interessieren mich nicht. Java oder C# kommen nicht in Frage; das Toolkit muss naemlich performant sein und sich mit einem C/C++ Programm linken lassen.
Danke fuer Eure Hilfe !
Gruesse
Frank
Hallo Frank,
Frank Gerlach schrieb:
-Was muss ich beim Thema Licensing beachten ? Insbesondere interessiert mich die Frage, ob ich Probleme bekomme mit GPL/LGPL/GPL exception lizensierter SW, wenn ich meine Software verkaufen will.
wxWidgets hat da ne Erweiterung, die scheinbar mehr erlaubt, als die LGPL.
-Welche Toolkits haben das beste (native) LookAndFeel ? (Insbesondere auf Windows und MacOS)
Windows sehe ich nicht so kritisch, da dort die Programme ähnlich organisiert sind, wie unter Linux. Der mir wichtigste Unterschied scheint mir zu sein, das unter Win mehr mit Unterfenstern (Stichwort AUI) gearbeitet wird, während *x mehr auf viele einzelne Fensterchen steht. MAC OS X unterscheidet sich von den anderen, dass es visuell kein Hauptfenster gibt und die Menüleiste am oberen Bildrand des Hauptbildschirms klebt. Es gibt jeweils nur eine einzige Instanz, die offen bleibt, auch wenn das letzte Dokumentenfenster geschlossen wird.
Das erfordert bei wxWidgets einiges an Handarbeit, die sich dann aber wieder sinnvoll auf andere Oberflächen (GTK, Win) übertragen lässt. Wie sich das im Verhältnis zu Qt macht weiß ich jetzt nicht. Was die Geschwindigkeit angeht, ist es halt ein Meta-Toolkit, braucht also tendenziell etwas mehr Zeit. Ansonsten hat es mit C++ einiges an Komfort zu bieten, der sich bei Verwendung eines STL-Builds gut mit den STL-Fähigkeiten ergänzen sollte. wx setzt beim Mac noch auf der alten Carbon-Bibliothek auf, die neuere Cocoa kann noch nicht alles.
Der direkte Mac-Port von GTK+ ist auch noch nicht freigegeben.
Tobias.
"Frank Gerlach" frankgerlach@gmail.com wrote:
-Welche Toolkits favorisiert Ihr ? (Ich habe bisher QT, GTK+, wxWidgets und wideStudio in Betracht gezogen)
QT: Lizenzgebühren nötig für nicht-freie SW GTK+: LGPL wxWidgets: leicht modifizierte LGPL, meines Wissens nach kein Problem für dein Projekt, aber schau besser mal rein (wideStudio: kenne ich nicht)
-Was muss ich beim Thema Licensing beachten ? Insbesondere interessiert mich die Frage, ob ich Probleme bekomme mit GPL/LGPL/GPL exception lizensierter SW, wenn ich meine Software verkaufen will.
1) du kannst auch Freie Software verkaufen; das schließt sich nicht grundsätzlich aus. Du musst dann allerdings den Quelltext mitliefern und in Kauf nehmen, dass den pot. jemand auf eine Website stellt und niemand mehr deine Software von dir kauft.
2) Wenn du eine GPL-Library einsetzt, dann muss auch deine App unter der GPL stehen. Anders bei der LGPL: hier darf deine App Closed Source sein. Was meinst du mit GPL Exception? (Ich kenne das nur von Classpath, welcher unter GPL steht und trotzdem in closed Source Java-Programmen genutzt werden darf)
-Welche Toolkits haben das beste (native) LookAndFeel ? (Insbesondere auf Windows und MacOS)
GTK+ verwendet auf allen Plattformen das selbe GUI. Du kannst also durchaus (indem du entsprechende Themes mitlieferst) für ähnlichen Look, aber kaum für ähnliches Feel sorgen. Meines Wissens nach ist wxWidgets hier Vorreiter (habs selbst nie verwendet, aber die Bsp. auf der Homepage sprechen für sich). Schau mal jeweils in die Dokus, wie der Dateiauswahldialog aussieht - das gibt dir binnen 5 Minuten eine erste Antwort, wie nah am nativen Toolkit es bleibt.
GUI Designer und aehnlichen Klimbim interessieren mich nicht. Java oder C# kommen nicht in Frage; das Toolkit muss naemlich performant sein und sich mit einem C/C++ Programm linken lassen.
(Der Aufwand ist höher, aber man kann auch diese Sprachen gegen C/C+ +-Bibliotheken linken.)
Viele Grüße Fabian
Frank Gerlach schrieb:
-Welche Toolkits favorisiert Ihr ? (Ich habe bisher QT, GTK+, wxWidgets und wideStudio in Betracht gezogen)
gtk-- aka gtkmm?
-Was muss ich beim Thema Licensing beachten ? Insbesondere interessiert mich die Frage, ob ich Probleme bekomme mit GPL/LGPL/GPL exception lizensierter SW, wenn ich meine Software verkaufen will.
Wenn Du wirklich die Software und nicht Dienstleistungen drumherum verkaufen willst, dann geht nur LGPL. Ausnahme sind Anwendungen, die so komplex oder mit weitergehendem Knowhow verknüpft sind, daß mit dem Quellcode sowieso niemand was anfangen kann. Ebenso Software die extrem auf einen Kunden oder eine Maschine zugeschnitten ist. ;-)
-Welche Toolkits haben das beste (native) LookAndFeel ? (Insbesondere auf Windows und MacOS)
Da scheiden gtk+ und gtkmm aus.
GUI Designer und aehnlichen Klimbim interessieren mich nicht. Java oder C# kommen nicht in Frage; das Toolkit muss naemlich performant sein und sich mit einem C/C++ Programm linken lassen.
Auch wenn ich dafür sicher Schelte ernte: C# ist _wesentlich_ schneller als sein Ruf und mittels mono läuft der Spaß auch auf MacOS. C++- bzw. C-"Programme" lassen sich mit gewissen Einschränkungen auch linken (wie linkt man etwas mit einem Programm?)
Java+SWT ist auch nicht so sehr langsam und demonstriert recht eindrucksvoll, daß man auch Java und C/C++-Code verheiraten kann.
Neben den von Dir genannten Randbedingungen ist auch noch die Toolunterstützung ein wichtiger Faktor. Damit meine ich nicht etwa GUI-Editoren oder sowas, sondern vernünftige Integration des Toolkits in eine IDE. Code::Blocks scheint z.B. ganz mit wxWidgets umgehen zu können. Die vim+make-Fraktion wetzt jetzt sicher schon die Messer, aber es ist ein Fakt daß Entwicklung jenseits der reinen C-Codierung schneller und komfortabler vonstatten geht, wenn man von schlauen Tools unterstützt wird. Das ist einfach eine Frage der Produktivität. Wer jetzt "ctags" ruft, hat einfach noch nicht intensiv (!) mit einer IDE gearbeitet, die den Namen verdient.
Viele Grüße Eric
-Welche Toolkits favorisiert Ihr ? (Ich habe bisher QT, GTK+, wxWidgets und wideStudio in Betracht gezogen)
wxWidget wuerde ich als Erstes anschauen. Wir haben vor Jahren gute Erfahrungen mit dem Vorgaenger "wxWindows" gemacht. QT finde ich mit seinen seltsamen Sitten und Gebraeuchen (komische Spracherweiterungen ("moc"), komische Tools "qmake")) etwas merkwuerdig. Bei GTK und co. hat man machmal den Eindruck, es waere permanent inkompatibel zu sich selbst... "wideStudio" kenne ich nicht.... FLTK waere auch noch ein Toolkit, das man sich vielleicht noch anschauen koennte.
Favorisieren wuerde ich eine toolkitunabhaengige Zwischenschicht fuer dein GUI. Damit kann man merkwuerdige Gebraeuche und Betriebssystemabhaengigkeiten aus dem normalen Code raushalten und ggf. im Notfall spaeter leichter auf ein anderes Toolkit umsteigen.
-Was muss ich beim Thema Licensing beachten ? Insbesondere interessiert mich die Frage, ob ich Probleme bekomme mit GPL/LGPL/GPL exception lizensierter SW, wenn ich meine Software verkaufen will.
Hmm, GPL code mit nicht dem Kunden veroeffentlichten Sourcen zu linken, geht erst mal gar nicht, wenn man Programme an andere weitergeben will.
Ob man Software verkaufen will oder nicht, ist davon aber unabhaengig. Man kann durchaus Software verkaufen und dabei den Sourcecode an seine Kunde weitergeben. Ob man das will, ist eine andere Frage...
-Welche Toolkits haben das beste (native) LookAndFeel ? (Insbesondere auf Windows und MacOS)
Meines Wissens gehoeren QT und wxWidgets zu den Toolkits, die im wesentlichen gegen native Bibleotheken gelinkt werden....
so long MUFTI
wxWidgets sieht meiner bisherigen, amateurhaften Analyse nach ziemlich interessant aus. Dazu kommt, dass die Lizenzbedingungen interessant sind (im Gegensatz zu QT). Aber mehr als ein HelloWorld habe ich bisher nicht kompiliert :-) Naja, vielleicht kann ich in ein paar Wochen mehr ueber wxWidgets verlauten lassen...
Am 11.02.08 schrieb Frank Gerlach frankgerlach@gmail.com:
(im Gegensatz zu QT).
<korinthenkackmodus>Das heißt Qt</korinthenkackmodus>
SCNR Robert
Am Montag 11 Februar 2008 10:00:02 schrieb Joerg Scheurich aka MUFTI:
QT finde ich mit seinen seltsamen Sitten und Gebraeuchen (komische Spracherweiterungen ("moc"), komische Tools "qmake")) etwas merkwuerdig.
man pyqt
Es braucht keinen moc und kein qmake. Und die Verwendbarkeit zusammen mit C++ ist natürlich auch gegeben.
Josef
Hallo,
"Frank Gerlach" frankgerlach@gmail.com writes:
-Welche Toolkits favorisiert Ihr ? (Ich habe bisher QT, GTK+, wxWidgets und wideStudio in Betracht gezogen)
also wenn ich etwas unter GNU/Linux mache, dann bevorzuge ich Gtk+, einfach da es dann am besten zu meinem Desktop passt. Was Cross-Platform-C++-Toolkits angeht ist Qt in meinen Augen unschlagbar.
-Was muss ich beim Thema Licensing beachten ? Insbesondere interessiert mich die Frage, ob ich Probleme bekomme mit GPL/LGPL/GPL exception lizensierter SW, wenn ich meine Software verkaufen will.
Du kannst in all diesen Fällen Kopien deiner Software verkaufen. Ich vermute deine Frage ziehlt eher in die Richtung, ob du proprietäre (nicht-freie) Software damit erstellen kannst.
Bei GPL Bibliotheken müssen deine Programme ebenfalls wieder unter der GPL stehen, was aber ein verkaufen nicht ausschließt. Bei LGPL Bibliotheken kannst du dir deine Lizenz selber aussuchen und bei GPL+exception kommt es auf die exception an.
Viele Grüße, Björn
On Sun, Feb 10, 2008 at 12:12:50AM +0100, Frank Gerlach wrote:
Hallo zusammen, ich bin zur Zeit auf der Suche nach einem cross-platform GUI Toolkit fuer ein kommerzielles Projekt (C/C++). Als Plattformen sollten mindestens Linux, Windows und MacOS X unterstuetzt werden. Meine GUI Erfahrung beschraenkt sich dabei auf AWT (Java) und ein C++ Toolkit von StarDivision (lang ists her). Mit C++ kenne ich mich meiner Meinung nach ganz gut aus... Vielleicht koennt Ihr mir bei folgenden Fragen beantworten:
-Welche Toolkits favorisiert Ihr ? (Ich habe bisher QT, GTK+, wxWidgets und wideStudio in Betracht gezogen)
ich nutze gtk mit Python. Qt habe ich noch nicht verwendet, da es mit dem GPL-Virus befallen ist. Gtk ist LGPL, so dass du es in kommerziellen closed source Projekten einsetzen kannst.
Was ich so gesehen und gehört habe ist, Qt jedoch besser. Kein Wunder, es ist ja auch eine Firma dahinter, die die Programmierer bezahlt. Bei gtk passiert so weit ich weiß mehr auf freiwilliger Basis.
GUI Designer und aehnlichen Klimbim interessieren mich nicht. Java oder C# kommen nicht in Frage; das Toolkit muss naemlich performant sein und sich mit einem C/C++ Programm linken lassen.
Hier wieder mein beliebter Spruch: C und C++ sind nicht performant. Scriptsprachen sind einiges schneller! Meist ist die Entwicklungszeit wichtiger als die minimalen Unterschiede bei der Ausführung des Programms. Bei numerischen Berechnungen und ähnlichen Dingen nimmt man dann eine optimierte Bibliothek oder C.
Gruß, Thomas
Thomas Guettler guettli@thomas-guettler.de (Mi 20 Feb 2008 21:03:29 CET):
ich nutze gtk mit Python. Qt habe ich noch nicht verwendet, da es mit dem GPL-Virus befallen ist. Gtk ist LGPL, so dass du es in kommerziellen closed source Projekten einsetzen kannst.
M.W. kannst Du Dich freikaufen von der GPL bei Qt. Dann kannst Du auch closed source machen. (Ich halte das für ein vernünftiges Modell.)
lug-dd@mailman.schlittermann.de