Grafische Benutzerschnittstellen via C++ erstellen - gtkmm/SFGUI
-
Hallo Leute,
ich habe mich entschieden, dass ich kleinere, schlichte Benutzeroberflächen via C++ erstellen möchte. Dafür brauche ich natürlich eine GUI Library. Deswegen habe ich ein wenig recherchiert. Zwei Punkte sind dabei essentiell wichtig für mich:1. Eine saubere, übersichtliche Dokumentation muss vorhanden sein.
2. Die GUI Library wird mit modernem C++ entwickelt.Meine Recherchen haben ergeben, dass es aktuell (leider) nur zwei Libs gibt, die diese Punkte erfüllen:
1. gtkmm
2. SFGUIIch kann mich nun nicht entscheiden, auf welche Lib ich mich stürzen soll. gtkmm scheint mir ausgereifter und stabiler zu sein. SFGUI ist relativ neu und scheint noch nicht so bekannt/verbreitet zu sein. Deshalb frage ich speziell diejenigen, die sich bereits mit beiden Libs befasst haben, welche sie favourisieren? Ich hoffe, dass Nexus das hier ließt und eventuell etwas dazu sagen kann, da ich weiß, dass er ein großer Fan von SFML ist und sich deshalb besimmt schon mit SFGUI beschäftigt und bestimmt eine Meinung dazu hat :).
Jede Meinung ist herzlich willkommen :).
LG out
-
Warum nur die zwei? Es steht doch schon im Namen des Forums - Qt, GTK+ und wxWidgets. Das sind die am weitesten verbreiteten Bibliotheken und meines Erachtens auch die wichtigsten. Ich selber arbeite mit Qt und kenn das am besten und finds auch gut.
Die beiden von dir genannten... Über gtkmm gibts widersprüchliche Meinungen. Und von Sfgui hab ich noch nie was gehört. Ich denke, wenn du eines der drei obengenannten Frameworks nimmst, bist du auf jeden Fall auf der sicheren Seite.
-
Meine Recherchen haben ergeben, dass es aktuell (leider) nur zwei Libs gibt, die diese Punkte erfüllen
Je nachdem, was man unter modern versteht, erfuellen diese Bibliotheken nicht die genannten Anforderungen.
Bei kleinen Projekten mit festem GUI-Layout benutze ich fltk.
-
Mechanics schrieb:
Warum nur die zwei? Es steht doch schon im Namen des Forums - Qt, GTK+ und wxWidgets. Das sind die am weitesten verbreiteten Bibliotheken und meines Erachtens auch die wichtigsten.
Könnte es dir möglicherweise entgangen sein, dass GTK+ C-Code ist (d.h. 80% Boilerplate um Vererbung nachzubauen und 20% schönes C). Gtkmm ist der C++-Port davon. Gefällt mir ziemlich gut.
Seither muss ich immer Kotzen, wenn ich Qt-Code sehe. Mit wxMacro fang ich gar nicht erst an.
-
fliltt schrieb:
Mechanics schrieb:
Warum nur die zwei? Es steht doch schon im Namen des Forums - Qt, GTK+ und wxWidgets. Das sind die am weitesten verbreiteten Bibliotheken und meines Erachtens auch die wichtigsten.
Könnte es dir möglicherweise entgangen sein, dass GTK+ C-Code ist (d.h. 80% Boilerplate um Vererbung nachzubauen und 20% schönes C). Gtkmm ist der C++-Port davon.
Der erste Punkt ist mir natürlich nicht entgangen, der zweite peinlicherweise schon. Ich hab gtkmm irgendwie mit dem von knivil erwähnten fltk verwechselt.
-
Maximal sind 10 Smilies erlaubt!
Naja, dann eben aufspalten :p
Mechanics schrieb:
Warum nur die zwei?
Wie gesagt, muss ein Toolkit (für mich) bestimmte Punkte zu erfüllen. Ich erwähne jene Punkte weiter unten nochmals.
Mechanics schrieb:
Es steht doch schon im Namen des Forums - Qt, GTK+ und wxWidgets.
Ich weiß, dass es mehrere C++ Toolkits gibt, um GUIs zu erstellen. Das von dir erwähnte GTK+ wird allerdings nicht mit C++ sondern mit C entwickelt. Was mich gleich zu der Frage bringt. @Moderatoren: Wieso steht GTK+ in der Beschreibung dieses Unterforums? Wieso steht da nicht gtkmm?
Mechanics schrieb:
Das sind die am weitesten verbreiteten Bibliotheken und meines Erachtens auch die wichtigsten.
Wichtig? Wichtig im Bezug auf? Wie meinst du das?
Mechanics schrieb:
Ich selber arbeite mit Qt und kenn das am besten und finds auch gut.
Welche Toolkits hast du bereits verwendet, abgesehen von Qt? Was findest du an Qt gut? Was findest du an den anderen nicht so gut?
knivil schrieb:
Meine Recherchen haben ergeben, dass es aktuell (leider) nur zwei Libs gibt, die diese Punkte erfüllen
Je nachdem, was man unter modern versteht, erfuellen diese Bibliotheken nicht die genannten Anforderungen
Wieso nicht? Klar, ich mein, modern ist ein dehnbarer Begriff. Was einer unter modernem C++ versteht, ist auch davon abhängig, wie gut derjenige C++ beherrscht. Dennoch… die C++ Standardbibliothek pflastert den Weg für modernes C++. Deshalb habe ich nochmals ein wenig recherchiert und nachgeschaut, welche Toolkits was aus der C++ Standardbibliothek verwenden. Ich finde das ganz interessant und werde das ganze deshalb als kleinen Artikel verfassen. Ich denke, es gibt viele Leute, die gerne Oberflächen via C++ erstellen wollen und vielleicht hilft es ihnen, eine Entscheidung zu treffen.
@Moderator: Der Threadtitel passt nun nicht mehr so ganz. Könntest du den Thread in „C++ GUI Toolkits im Vergleich“ umbenennen? Danke.
-
Meine Anforderungen an ein GUI Toolkit
- Eine saubere, übersichtliche Dokumentation muss vorhanden sein.
- Die C++ Standardbibliothek kommt zum Einsatz.
- Plattformunabhängigkeit (Linux/Windows)
In Frage kommende GUI Toolkits
- CEGUI
- FLTK
- FOX toolkit
- GLUI
- gtkmm
- Juce
- Qt
- SFGUI
- TnFOX
- Ultimate++
- VCF
- wxWidgets
- YAAF
CEGUI (Crazy Eddie's GUI) 0.7.9
Projektumfang
Files (Header/Source): ca. 1200
Was wird aus der C++ Standardbibliothek verwendet?
`<algorithm>
<cassert>
<cmath>
<deque>
<exception>
<fstream>
<functional>
<iomanip>
<iostream>
<iterator>
<limits>
<list>
<map>
<memory>
<set>
<sstream>
<stdexcept>
<string>
<utility>
<vector>`
==> 20Was wird aus boost verwendet?
`"boost/call_traits.hpp"
"boost/config.hpp"
"boost/detail/workaround.hpp"
"boost/python.hpp"
"boost/python/def_visitor.hpp"
"boost/python/errors.hpp"
"boost/python/handle.hpp"
"boost/python/object.hpp"
"boost/python/register_ptr_to_python.hpp"
"boost/python/return_by_value.hpp"
"boost/shared_ptr.hpp"
"boost/static_assert.hpp"
"boost/type_traits.hpp"
"boost/type_traits/is_const.hpp"`
==> 14Dokumentation (API-Referenz )
http://www.cegui.org.uk/docs/current/classes.html
FLTK (Fast, Light Toolkit) 1.3.2
Projektumfang
Files (Header/Source): ca. 700
Was wird aus der C++ Standardbibliothek verwendet?
`<algorithm>
<vector>`
==> 2Was wird aus boost verwendet?
==> 0
Dokumentation (API-Referenz )
http://www.fltk.org/doc-1.3/classes.html
FOX toolkit 1.6.49
Projektumfang
Files (Header/Source): ca. 700
Was wird aus der C++ Standardbibliothek verwendet?
==> 0
Was wird aus boost verwendet?
==> 0
Dokumentation (API-Referenz )
http://www.fox-toolkit.org/ref16/classes.html
gtkmm 3.1.90
Projektumfang
Files (Header/Source): ca. 700
Was wird aus der C++ Standardbibliothek verwendet?
`<algorithm>
<cctype>
<cmath>
<fstream>
<iostream>
<iterator>
<memory>
<string>
<utility>
<vector>`
==> 10Was wird aus boost verwendet?
==> 0
Dokumentation (API-Referenz )
http://www.gtkmm.org/de/documentation.html
Juce 2.0.40
Projektumfang
Files (Header/Source): ca. 1300
Was wird aus der C++ Standardbibliothek verwendet?
`<algorithm>
<cassert>
<cctype>
<cmath>
<fstream>
<iostream>
<limits>
<locale>
<memory>
<stdexcept>
<typeinfo>
<vector>`
==> 12Was wird aus boost verwendet?
==> 0
Dokumentation (API-Referenz )
http://rawmaterialsoftware.com/juce/api/classes.html
Qt 5.0.2
Projektumfang
Files (Header/Source): ca. 3700
Was wird aus der C++ Standardbibliothek verwendet?
`<algorithm>
<atomic>
<cassert>
<cmath>
<exception>
<functional>
<initializer_list>
<iostream>
<iterator>
<limits>
<list>
<map>
<set>
<string>
<typeinfo>
<utility>
<vector>`
==> 17Was wird aus boost verwendet?
==> 0
Dokumentation (API-Referenz )
http://qt-project.org/doc/qt-5.0/qtdoc/classes.html
SFGUI (Simple and Fast Graphical User Interface) 0.1.0
Projektumfang
Files (Header/Source): ca. 150
Was wird aus der C++ Standardbibliothek verwendet?
`<algorithm>
<cassert>
<cctype>
<cmath>
<deque>
<fstream>
<functional>
<iomanip>
<iostream>
<limits>
<list>
<map>
<set>
<sstream>
<stack>
<stdexcept>
<string>
<typeinfo>
<vector>`
==> 19Was wird aus boost verwendet?
==> 0
Dokumentation (API-Referenz )
http://sfgui.sfml-dev.de/doxygen/classes.html
Ultimate++ 5485
Projektumfang
Files (Header/Source): ca. 3200
Was wird aus der C++ Standardbibliothek verwendet?
`<algorithm>
<cassert>
<cmath>
<exception>
<fstream>
<iosfwd>
<iostream>
<istream>
<limits>
<list>
<locale>
<map>
<memory>
<set>
<sstream>
<stack>
<string>
<vector>`
==> 18Was wird aus boost verwendet?
"boost/python.hpp"
==> 1Dokumentation (API-Referenz )
http://www.ultimatepp.org/wwwdocumentation$en-us.html
wxWidgets 2.8.12
Projektumfang
Files (Header/Source): ca. 2100
Was wird aus der C++ Standardbibliothek verwendet?
` <algorithm>
<bitset>
<fstream>
<functional>
<iosfwd>
<iostream>
<iterator>
<list>
<map>
<string>
<typeinfo>
<unordered_set>
<utility>
<vector>`
==> 14Was wird aus boost verwendet?
==> 0
Dokumentation (API-Referenz )
http://docs.wxwidgets.org/stable/wx_classref.html#classref
Nicht ausgewertete Toolkits
Folgende GUI Toolkits wurden nicht ausgewertet, weil sie veraltet sind und seit Jahren nicht mehr weiterentwickelt wurden:
- GLUI ----> last update: 04.11.2007
- TnFOX --> last update: 13.06.2008
- VCF -----> last update: 14.05.2008
- YAAF ----> last update: 2004
Mein Erkenntnisse
CEGUI
- Nutzt sehr viel aus der C++ Standardbibliothek.
- Ein größeres Toolkit. Man kann damit mehr machen, als nur Benutzeroberflächen erstellen.
- Der Quellcode macht auf den ersten Blick einen ordentlichen Eindruck. Man erkennt, es handelt sich um C++.
- Manchmal wird const bei call-by-value verwendet. Das schaut merkwürdig aus.
- Es gibt viele reinterpret_casts, wenige dynamic_casts und wenige const_casts.
- Dokumentation wird mittels Doxygen gemacht.FLTK
- Die C++ Standardbibliothek wird nicht sehr oft verwendet.
- Der Quellcode schaut nach einem C-C++-Gemisch aus. Es macht nicht so viel Spaß, den Quellcode anzuschauen. Macht öfters den Eindruck, als wäre er einfach nur eine wilde Aneinanderreihung von Buchstaben. Aber es ist nicht so schlimm, wie beim Fox toolkit.
- Nutzt viele void-Zeiger, new/delete und C-Casts (fast keine C++-Casts).
- Manchmal werden Klassen in einer cpp-File definiert.
- Dokumentation wird mittels Doxygen gemacht.FOX toolkit
- Aus der C++ Standardbibliothek wird gar nichts verwendet. Es ist mir ein Rätsel, wie der Entwickler so etwas als C++ bezeichnen kann. Der Quellcode ist grauenhaft. Er schaut wie eine wilde Aneinanderreihung von Buchstaben aus, einfach schrecklich. Selten etwas Schlimmeres gesehen.
- void-Zeiger ohne Ende, fclose/fopen, new/delete, C-Casts... Außerdem kommen dynamic_casts vor. Höchst wahrscheinlich ein Hinweis auf fehlerhaftes Design.
- Das Keyword register wird benutzt. Soviel ich weiß, wird das Keyword vom Compiler heutzutage meist ignoriert… Außerdem wird es mittlerweile als deprecated angesehen.
- Die Dokumentation ist ok. Um vieles besser als der Quellcode. (kein Doxygen)gtkmm
- Nutzt relativ viel aus der C++ Standardbibliothek.
- Es gibt viele reinterpret_casts, viele dynamic_casts und viele const_casts.
- Auch findet man C-Casts, new/delete und void-Zeiger.
- Von gtkmm habe ich sehr viel Positives gehört, bin nun aber doch ein wenig enttäuscht, als ich den Quellcode überflogen habe. ABER: hier sieht man, dass es sich um C++ handelt. Den Quellcode kann man anschauen, ohne dass einem die Augen wehtun.
- Die Dokumentation finde ich nicht gut und nicht schlecht. Mir fehlt eine Seite, auf der alle Referenzen vorhanden sind. (kein Doxygen)Juce
- Ein größeres Toolkit. Man kann damit mehr machen, als nur Benutzeroberflächen erstellen.
- Nutzt relativ viel aus der C++ Standardbibliothek.
- Oft wird const bei call-by-value verwendet. Das schaut merkwürdig aus.
- Es gibt viele reinterpret_casts, viele dynamic_casts und viele const_casts.
- new/delete
- Ansonsten schaut der der Quellcode auf den ersten Blick ganz ordentlich aus. Man sieht, es handelt sich um C++.
- Dokumentation wird mittels Doxygen gemacht.Qt
- Ein sehr goßes Toolkit. Qt kann weitaus mehr, als nur Benutzeroberflächen erstellen.
- Nutzt sehr viel aus der C++ Standardbibliothek und verwendet bereits C++11.
- Es gibt viele reinterpret_casts, wenige dynamic_casts und viele const_casts.
- new/delete
- Man sieht, es handelt sich um C++. Man kann den Quellcode anschauen, ohne dass einem die Augen wehtun.
- Qt nutzt einen Präprozessor names MOC. Dieser ist vielen ein Dorn im Auge und für den einen oder anderen ein Grund, Qt nicht zu nehmen.
- Die Dokumentation finde ich gut (kein Doxygen). Gefällt mir sogar irgendwie besser, als Doxygen.SFGUI
- Im Vergleich zu den anderen ist SFGUI ein kleines Toolkit.
- Nutzt sehr viel aus der C++ Standardbibliothek.
- Es gibt sehr wenige reinterpret_casts, sehr wenige dynamic_casts und sehr wenige const_casts.
- Ein paar wenige new/delete.
- Der Quellcode schaut sehr ordentlich aus. Man sieht, es handelt sich um C++.
- Im Vergleich zu den anderen echten C++ Toolkits, finde ich das C++ von SFGUI am schönsten.
- Dokumentation wird mittels Doxygen gemacht.Ultimate++
- Ein größeres Toolkit. Man kann damit mehr machen, als nur Benutzeroberflächen erstellen.
- Nutzt sehr viel aus der C++ Standardbibliothek.
- Es gibt wenige reinterpret_casts, viele dynamic_casts und viele const_casts.
- Der Quellcode schaut nicht gut und nicht schlecht aus... irgendwo dazwischen. Man erkennt aber sehr wohl, dass es sich um C++ handelt.
- Die Dokumentation finde ich nicht gut und nicht schlecht. Sieht mir irgendwie ein wenig langweilig aus.wxWidgets
- Ein größeres Toolkit. Man kann damit mehr machen, als nur Benutzeroberflächen erstellen.
- Nutzt sehr viel aus der C++ Standardbibliothek.
- Es gibt wenige reinterpret_casts, wenige dynamic_casts und viele const_casts.
- new/delete
- Der Quellcode ist nicht immer sehr schön zu lesen und schaut manchmal ein bisschen wild aus. Ich ordne ihn auch irgendwo zwischen FLTK und SFGUI ein.
- Die Dokumentation finde ich schrecklich. Es macht echt keinen Spaß, wenn einem die Betrachtung einer Schnittstelle wie das Lesen eines langen Satzes vorkommt. Und diese blaue, fette Schriftart, einfach grausam. wxWidgets hat definitiv die schlimmste Dokumentation.Was viel mir sonst noch so auf?
- C++11 wird bis jetzt nur bei Qt eingesetzt.
- boost wird so gut wie nie verwendet. Das hat mich doch sehr überrascht.Hinweis
Meine Erkenntnisse sind selbstverständlich subjektiv. Außerdem habe ich natürlich nicht jede Datei eines jeden Toolkits angeschaut. Ich habe immer nur einige Dateien herausgepickt und diese angeschaut, nicht mehr und nicht weniger. Darum bitte nicht jedes Wort (jede Aussage) auf die Goldwaage legen. Was jedoch die Auswertung der Verwendung der C++ Standardbibliothek betrifft, hierbei wurden stets alle Header- und Source-Dateien eines Toolkits miteinbezogen.
Schlussworte
Ich hoffe, dem ein oder anderen hilft es, eine Entscheidung zu treffen. Natürlich muss jeder selbst wissen, welches Toolkit er nimmt, wenn er GUIs via C++ erstellen möchte. Ich habe mich nun für SFGUI entschieden, weil es klein ist, ich es vom C++ her am schönsten finde und glaube, dass der Lerneffekt hier am größten ist, wenn man sich den Quellcode anschaut.
Zusammengefasst:
- FOX toolkit und FLTK scheiden für mich aus, weil sie gar nicht bis kaum die C++ Standardbibliothek verwenden.
- wxWidgets scheidet für mich aus, weil ich die Dokumentation schrecklich finde.
- CEGUI, Juce, Qt und Ultimate++ scheiden für mich aus, weil sie für das, was ich machen will, zu mächtig sind, also zu viel bieten (u.a. XML, Networking, Audio). Ich will nur kleine, schlichte Benutzeroberflächen erstellen, mit ein paar Buttons, Slider und Textfenster.
- Übrig bleiben gtkmm und SFGUI, und da ich das C++ von SFGUI schöner finde, habe ich mich für SFGUI entschieden.
-
out schrieb:
Mechanics schrieb:
Das sind die am weitesten verbreiteten Bibliotheken und meines Erachtens auch die wichtigsten.
Wichtig? Wichtig im Bezug auf? Wie meinst du das?
Wichtig im Bezug auf mögliche Jobchancen/Verwendung im Projekten. Wenn du später einen Job suchst, oder an einem Open Source Projekt mitarbeiten möchtest, ist die Wahrscheinlichkeit am größten, das eines dieser Frameworks verwendet wird.
out schrieb:
Mechanics schrieb:
Ich selber arbeite mit Qt und kenn das am besten und finds auch gut.
Welche Toolkits hast du bereits verwendet, abgesehen von Qt? Was findest du an Qt gut? Was findest du an den anderen nicht so gut?
Früher musste ich relativ viel mit MFC arbeiten, fand das grauenhaft, da brauchen wir glaub ich gar nicht drüber reden
Mit GTK+ und wxWidgets hab ich auch schon was gemacht, aber nicht viel. Qt benutzen wir intensiv in der Arbeit, aber nicht die neueste Version, und müssen da ständig was fixen und haben das teilweise auch recht massiv umgebaut. Daher kenn ich mich damit ganz gut aus und bin damit zufrieden. Ich will damit aber nicht sagen, dass ich das perfekt oder herausragend finde. Ich könnte mir genauso gut vorstellen, mit GTK oder wxWidgets zu arbeiten. Aber mit Qt bin ich eben völlig zufrieden. Die Doku ist gut, der Code ist sauber und verfolgt eine einheitliche Linie. Damit kann man gut arbeiten.
-
Mechanics schrieb:
out schrieb:
Mechanics schrieb:
Das sind die am weitesten verbreiteten Bibliotheken und meines Erachtens auch die wichtigsten.
Wichtig? Wichtig im Bezug auf? Wie meinst du das?
Wichtig im Bezug auf mögliche Jobchancen/Verwendung im Projekten. Wenn du später einen Job suchst, oder an einem Open Source Projekt mitarbeiten möchtest, ist die Wahrscheinlichkeit am größten, das eines dieser Frameworks verwendet wird.
Ah, ok, so hast du das gemeint. Ja, da gebe ich dir Recht. In meiner vorherigen Firma wurde beispielsweise Qt verwendet.
Mechanics schrieb:
Qt benutzen wir intensiv in der Arbeit, aber nicht die neueste Version, und müssen da ständig was fixen und haben das teilweise auch recht massiv umgebaut. Daher kenn ich mich damit ganz gut aus und bin damit zufrieden. Ich will damit aber nicht sagen, dass ich das perfekt oder herausragend finde. Ich könnte mir genauso gut vorstellen, mit GTK oder wxWidgets zu arbeiten. Aber mit Qt bin ich eben völlig zufrieden. Die Doku ist gut, der Code ist sauber und verfolgt eine einheitliche Linie. Damit kann man gut arbeiten.
Ja, die Dokumentation von Qt fand ich auch gut. Ja das habe ich auch mitbekommen, dass die neue Version 5 wohl viel Kritik einstecken muss. Die Leute bei meiner alten Firma haben dann auch die "alte" Version 4.8 weiter genutzt.
-
out schrieb:
Zusammengefasst:
- FOX toolkit und FLTK scheiden für mich aus, weil sie gar nicht bis kaum die C++ Standardbibliothek verwenden.
- wxWidgets scheidet für mich aus, weil ich die Dokumentation schrecklich finde.
- CEGUI, Juce, Qt und Ultimate++ scheiden für mich aus, weil sie für das, was ich machen will, zu mächtig sind, also zu viel bieten (u.a. XML, Networking, Audio). Ich will nur kleine, schlichte Benutzeroberflächen erstellen, mit ein paar Buttons, Slider und Textfenster.
- Übrig bleiben gtkmm und SFGUI, und da ich das C++ von SFGUI schöner finde, habe ich mich für SFGUI entschieden.Was du bei Qt als "bietet zu viel" u.a. XML, Networking und Audio gilt auch für deine Wahl von SFGUI. Denn SFGUI baut auf SFML 2.x auf (http://sfgui.sfml-dev.de/p/docs/guide)
Und SFML bietet auch Module für Networking und Audio an.
http://www.sfml-dev.org/documentation/2.0/modules.phpIch möchte deine Wahl nicht schlecht reden nur die Begründung ist nicht stimmig.
Und bei Qt musst du auch nicht alle Module verwenden. Für reine Gui sachen reichen QtGui und QtCore (bei Qt 4.x).
Mit Qt 5 ist das ganze Framework noch modularer.
-
firefly schrieb:
Was du bei Qt als "bietet zu viel" u.a. XML, Networking und Audio gilt auch für deine Wahl von SFGUI. Denn SFGUI baut auf SFML 2.x auf (http://sfgui.sfml-dev.de/p/docs/guide)
Ja stimmt, habe ich gemogelt. gtkmm hat auch einige Abhängigkeiten, ob das bei jenen Abhängigkeiten auch dabei ist, habe ich auch nicht geprüft.
firefly schrieb:
Und bei Qt musst du auch nicht alle Module verwenden. Für reine Gui sachen reichen QtGui und QtCore (bei Qt 4.x).
Mit Qt 5 ist das ganze Framework noch modularer.Ah ok, Danke, das wusste ich nicht.
-
Bei gtkmm ist das Problem, dass man da etliche Libs kompilieren muss, bevor man gtkmm nutzen kann (zumindestens auf Windows). Habe bereits mehrere Anläufe versucht und habs bisher nicht geschafft. Die Libraries soll ich, der Reihenfolge nach, kompilieren: libsigc++, glibmm, cairomm, pangomm, atkmm and gtkmm. libsigc++ schaffe ich noch. Für die glibmm brauch ich nun glib. Ok, suchen, downloaden und kompilieren. Huch? Da fehlen weitere Libs? libintl.h? Was ist das? Googeln. Da hörts bei mir auf, weil mir da die Lust vergeht. Bin Windows Nutzer.
-
@out: Danke fuer die Zusammenstellung. Natuerlich sind alle Anforderungen meist problembezogen oder subjektiv. Das fltk beispielsweise keine Standardbibliothek benutzt, finde ich persoenlich nicht schlimm. Auch braucht ein GUI-Toolkit nicht zwingend C++11 Features.
Leider enthalten die meisten anderen Bibliotheken mehr Funktionalitaet als nur GUI. Das stoert mich gewaltig. Einzige Alternative ist beispielsweise SFGUI, zwar gibt es auch durch SFML mehr als nur GUI, aber es haelt sich in Grenzen und ich erwaege es als ernsthafte Alternative. Was mir bei SFGUI fehlt, sind Popup-Menues, aber vielleicht habe ich da was uebersehen.
-
Del1nquenz schrieb:
kompilieren: libsigc++, glibmm, cairomm, pangomm, atkmm and gtkmm. libsigc++ schaffe ich noch. Für die glibmm brauch ich nun glib. Ok, suchen, downloaden und kompilieren. Huch? Da fehlen weitere Libs? libintl.h? Was ist das? Googeln. Da hörts bei mir auf, weil mir da die Lust vergeht. Bin Windows Nutzer.
Ja das kenne ich gut, da vergeht einem die Lust und man ist frustriert :/.
knivil schrieb:
Das fltk beispielsweise keine Standardbibliothek benutzt, finde ich persoenlich nicht schlimm.
:p Ja zu dieser Erkenntnis kam ich auch, als ich mir FLTK angeschaut habe und deinen vorherigen Beitrag nochmals laß.
knivil schrieb:
Auch braucht ein GUI-Toolkit nicht zwingend C++11 Features.
Stimmt. Viel mir eben nur auf.
knivil schrieb:
Leider enthalten die meisten anderen Bibliotheken mehr Funktionalitaet als nur GUI. Das stoert mich gewaltig.
Ja, das stört mich auch. Klar kann man wie firefly argumentieren, >nutze eben nur das was du brauchst und lass den Rest links liegen.< Aber ich denke, das wird eine endlose Diskussion sein. Es gibt eben die Leute, denen ist egal, was ein Toolkit mitsich bringt. Sie nehmen nur das was sie brauchen. Dann gibt es eben so Leute wie wir, die wirklich nur das vorfinden wollen, was sie brauchen.
knivil schrieb:
Einzige Alternative ist beispielsweise SFGUI, zwar gibt es auch durch SFML mehr als nur GUI, aber es haelt sich in Grenzen und ich erwaege es als ernsthafte Alternative. Was mir bei SFGUI fehlt, sind Popup-Menues, aber vielleicht habe ich da was uebersehen.
Sehe ich auch so. Was Popup-Menues angeht, weiß ich nicht. Benötigte ich noch nicht :p.