Die endlose Geschichte der GUI-Libraries



  • Artchi schrieb:

    Das Thema haben wir hier schon mal durch gekaut:

    Haben "wir"? Wo?

    Nur wer einen GNU-Compiler benutzt, wird auch in den Geschmack der GPL kommen.

    Wo ist der Zusammenhang zwischen GPL und "nur GNU-Compiler"?

    Für viele Windowsler (wie mich) ist die GPL uninteressant.

    Wo ist der Zusammenhang zwischen Betriebssystem und "GPL uninteressant"?



  • VCF nicht vergessen

    http://vcf.sourceforge.net/

    Hab zwar noch nicht mit gearbeitet, aber immerhin sagen sie auch, dass dass sie ein sauberes c++GUI-Framework haben wollen

    <Ironie>
    Sag bloss, die mitgelieferten Beispiele funktionieren
    </Ironie>

    Da kann ich Artchi nur recht geben. Dass Beispiel-Projekte etc. immer auf Anhieb compilieren und laufen, kann man nun wirklich nicht sagen.
    Hätte aber auch mal nen anderen Compiler als VC++ ausprobieren können. In der Windows-Welt wird der meistens am besten gepflegt.



  • sarfuan schrieb:

    Artchi schrieb:

    Das Thema haben wir hier schon mal durch gekaut:

    Haben "wir"? Wo?

    Kann ich leider nicht mehr finden. Hab nur einen Qt-Beitrag aus diesem Jahr per Suchfunktion gefunden. Bin mir aber sicher, das mal die Trolltech-Ankündigung auch hier gepostet und entsprechend behandelt wurde.

    sarfuan schrieb:

    Nur wer einen GNU-Compiler benutzt, wird auch in den Geschmack der GPL kommen.

    Wo ist der Zusammenhang zwischen GPL und "nur GNU-Compiler"?

    Für Trolltech scheint es diesen Zusammenhang zu geben, werden wohl die Mentalitätsgründe sein:

    Commercial compiler support - the tools shipped with the GPL version support the popular GNU CC compiler. The C++ compilers from Microsoft, Intel and Borland are not supported by the tools in the GPL version.

    Quelle: http://www.trolltech.com/developer/faqs/duallicense.html?cid=20#q18

    sarfuan schrieb:

    Für viele Windowsler (wie mich) ist die GPL uninteressant.

    Wo ist der Zusammenhang zwischen Betriebssystem und "GPL uninteressant"?

    Siehe zweite Antwort. 😉 Bin der Meinung, das GPL-Liebhaber eher zu Linux wechseln. Ich hab ja nicht geschrieben alle Windowsler, sondern viele. Viele werden sicherlich kostenlose Software benutzen oder entwickeln wollen. Aber OpenSource ist trotzdem nicht jeder Manns Geschmack. Und unter Linux werden denke ich einfach mal mehr Leute eher auf OpenSource schwören. Und das scheint ja auch Trolltech mit zumachen, in dem sie erst jetzt Windows einbeziehen, aber blos nicht den evil VC++ u.a. ClosedSource Compilern. 😉 Jedenfalls legen sie VC++-Usern offiziell Steine in den Weg. Ob man es über Trick17 trotzdem hinbekommt, ist ja was anderes. 😃

    Ist ja auch egal...



  • So, habe mich an das FOX-Tutorial rangemacht. Es werden tatsächlich Makros eingesetzt, die ich gegenüber anderen makroverseuchten GUIs ala wxWidgets ehrlich nicht sichten konnte. Im Prinzip benutzt FOX irgendwie eine merkwürdige Kombination. Enums und Objekte werden für Messages und Events hin und her geschickt, was ich für i.O. halte. Auf der anderen Seite wird für widerkehrende Aufgaben Makros benutzt:

    The macro FXDECLARE(ScribbleWindow) declares a number of member functions which every object derived from FXObject should have; we've used a macro as it is always the same, and more convenient to program this way.

    Werde mal in dem Tutorial weiter machen und schauen was noch so passiert. Trotzdem denke ich momentan noch das FOX-Toolkit gegenüber anderen GUI-Libs runder ist. Runter laden und loslegen! 👍

    Die Makros hätte man sich sicherlich ersparen können... sehr wünschenswert!!!

    Aber wie mein Topic-Titel (leider) irgendwie voraus gesehen hat: es ist anscheinend wirklich eine endlose Geschichte?! 😮 😃



  • Von namespaces hat das Fox-Toolkit wohl auch noch nix gehört... 🙄



  • namespace schrieb:

    Von namespaces hat das Fox-Toolkit wohl auch noch nix gehört... 🙄

    Trifft aber auf alle mir bekannten GUI-Libs zu.



  • VCF pack alles in den Namensraum VCF. Auch sonst finde ich es recht sauber und Makros scheinen auch eher die Ausnahme zu sein. Das einzige was mich dran stört ist das es noch in der Entwicklung ist und ausser VC eignetlich noch nichts so wirklich einbahnfrei läuft. Hat aber Potenzial.



  • Walli schrieb:

    namespace schrieb:

    Von namespaces hat das Fox-Toolkit wohl auch noch nix gehört... 🙄

    Trifft aber auf alle mir bekannten GUI-Libs zu.

    gtkmm verwendet jedenfalls namespace anstelle Prefixes.



  • FOX benutzt auch einen Namespace genannt FX. Das Prefix FX ist trotzdem vor jedem Klassennamen.



  • schrecklich



  • Artchi schrieb:

    So, habe mich an das FOX-Tutorial rangemacht. Es werden tatsächlich Makros eingesetzt, die ich gegenüber anderen makroverseuchten GUIs ala wxWidgets ehrlich nicht sichten konnte. Im Prinzip benutzt FOX irgendwie eine merkwürdige Kombination.

    Ah ja. Genau,

    FXDEFMAP(FXGLViewer) FXGLViewerMap[]={
      FXMAPFUNC(SEL_PAINT,0,FXGLViewer::onPaint),
      ....
      FXMAPFUNCS(SEL_UPDATE,MINKEY,MAXKEY,FXGLViewer::onUpdAll),
      };
    

    hat in der Tat (mindestens) ein Makro weniger als

    BEGIN_EVENT_TABLE(MyFrame, wxFrame)
      EVT_MENU    (wxID_EXIT, MyFrame::OnExit)
      EVT_MENU    (DO_TEST,   MyFrame::DoTest)
      EVT_SIZE    (           MyFrame::OnSize)
      EVT_BUTTON  (BUTTON1,   MyFrame::OnButton1)
    END_EVENT_TABLE()
    

    Und diese elegante Mischung aus Makros und einem ordentlichem Array ist auch sehr intuitiv und geschmeidig.
    Im Vergleich dazu der Ansatz mittels libsigc++ der gtkmm wohl kaum noch diskussionswürdig...

    Artchi schrieb:

    Enums und Objekte werden für Messages und Events hin und her geschickt, was ich für i.O. halte.

    Volle Zustimmung, die Message-IDs und Event-Objekte der FOX Message Map sind den Message-IDs und Event-Objekten der wxWidgets Message Map haushoch überlegen.

    Artchi schrieb:

    Auf der anderen Seite wird für widerkehrende Aufgaben Makros benutzt:

    The macro FXDECLARE(ScribbleWindow) declares a number of member functions which every object derived from FXObject should have; we've used a macro as it is always the same, and more convenient to program this way.

    Sehe ich genauso. FXDECLARE ist viel kürzer und deutlicher und angenehmer zu schreiben als DECLARE_CLASS; gleiches gilt natürlich für FXIMPLEMENT und IMPLEMENT_CLASS, also schon zwei Vorteile.

    Artchi schrieb:

    FOX benutzt auch einen Namespace genannt FX. Das Prefix FX ist trotzdem vor jedem Klassennamen.

    Ja, das macht Sinn. Wobei ich denke dass "der Windowsler" an sich ein CFX oder evtl. C_FX Präfix bevorzugen würde, da ist also noch Spielraum für Verbesserung.

    (NB: Sarkasmusfreie Textpassagen gehören mir allein, der Rest steht, aus Mentalitätsgründen, unter der GNU Free Documentation License der Allgemeinheit zur Verfügung 🙄 )



  • Volle Zustimmung, die Message-IDs und Event-Objekte der FOX Message Map sind den Message-IDs und Event-Objekten der wxWidgets Message Map haushoch überlegen.

    Sarkasmus oder Standart?



  • cd9000 schrieb:

    Walli schrieb:

    namespace schrieb:

    Von namespaces hat das Fox-Toolkit wohl auch noch nix gehört... 🙄

    Trifft aber auf alle mir bekannten GUI-Libs zu.

    gtkmm verwendet jedenfalls namespace anstelle Prefixes.

    Die ist mir ja auch nicht bekannt 😉


Anmelden zum Antworten