VORSCHLAG FÜR FAQ: GUI Programmierung mit C++



  • bluetiger schrieb:

    ...niemand verwendet freiwillig die Xlib!

    gewagte aussage... kannst du das irgendwie sachlich begründen, ausser "hat keine widgets"?



  • kingruedi schrieb:

    Werd aber was ähnliches bald schreiben.

    Ist mir zu Linux-lastig. :p



  • Korbinian schrieb:

    bluetiger schrieb:

    ...niemand verwendet freiwillig die Xlib!

    gewagte aussage... kannst du das irgendwie sachlich begründen, ausser "hat keine widgets"?

    Hmm... ok, stimmt, es ist vielleicht wirklich etwas unsachlich, gibt wahrscheinlich auch Leute, die sie gern benutzen, aber i. d. R. sind das die Ausnahme.

    Was die Xlib so unzugaenglich macht, sind IMO:

    1. "keine Widgets" 😉 (was GUI Programmierung sehr, sehr schwierig bis unmoeglich macht ohne Wrapper)
    2. relativ low-lewel
    3. AFAIK ziemlich veraltet und kompliziert
    4. Wie viele"ernsthafte", aktuelle Projekte kennst du, die direkt die Xlib benutzen (X-Server, Qt-Library usw. zaehlen nicht 😉 :D)? Und wieviele kennst du, die Qt, GTK etc. benutzen? Ist zwar kein weber Beweis noch Kriterium, trotzdem relativ aussagekraeftig



  • Deine Intention in Ehren und du hast dir ja auch Mühe gegeben, aber ich finde es sind zu viele persönliche Meinungen darin vorhanden. Das du z.B. schreibst, das man über ManagedC++ nichts gutes gehört hat, und man deshalb C# lernen soll, wenn man WinForms benutzen will, finde ich sehr merkwürdig.

    ManagedC++ ist einfach nur eine weitere Sprachdefinition, die mit WinForms direkt nichts zu tun hat. WinForms ist einfach nur ein Teil eines Frameworks (.NET).



  • managedC++ heißt inzwischen übrigens C++/CLI



  • Besser gesagt, die nächste Version wird so heißen. ManagedC++ ist sozusagen das "alte" und ab nächstem Jahr wird das ManagedC++ eleganter in der Syntax und wird somit auch gleich umbenannt. Weiterhin gaaanz wichtig: C++/CLI wird bei der ECMA eingereicht und wird somit ISO-Standard! Einfach nur krass, so dürften wir wohl bald nicht nur C++/CLI Compiler von MS sehen, sondern auch von anderen Herstellern.



  • Lieber kingruedi:

    kingruedi schrieb:

    b) zu Subjektiv (ua. der Kommentar zur VCL)

    Objektivität ist eine Illusion. Ausserdem kann ich am Kommentar zur VCL nix Subjektives finden? (zugegeben ihc hab den Punkt nur kurz überflogen)

    Und zu

    kingruedi schrieb:

    a) zu Windows-Lastig

    sowie

    kingruedi schrieb:

    c) teilweise falsch (zB. gibt es GTKmm für MSVC++)
    ). Werd aber was ähnliches bald schreiben.

    Wie Jester schon sehr ähnlich sagte: Ist mir zu Linux und OpenSource-Lastig. Wieso ich jetzt schon glaube das behaupten zu können? Ganz einfach: man tendiert nunmal dazu, das womit man arbeitet präziser zu thematisieren als das wovon man nur mal etwas gehört hat.

    Was den Rest angeht: Ich finde BT hat eine nette Basis geliefert. Was spricht also dagegen, diese basis zu nehmen und in Zusammenarbeit eine Erweiterung der Unix-Seite sowie eine Korrektur von Fehlern vorzunehmen? Ich denke, genau deshalb hat BT diesen Vorschlag ja veröffentlicht?
    Es besteht also gar kein Grund selber was ähnliches zu schreiben. Sinnvoll wäre es die gelegte Basis zu erweitern.

    Meine Meinung dazu.

    -junix



  • Und sonst... sieht irgndwie wie ein Artikel aus Bild-Zeitung aus. Ne menge Wörter, vollgestöpft mit Emotionen, und nach dem durchlesen ist man wieder am gleichen Punkt die vorher.

    ach matty schreib doch selber was vernünfitges bevor du gute artikel kritisierst 😡 "bild zeitung" wie kommst du zu so einem vergleich?

    BT hat einen sehr guten beitrag verfasst, es war ja auch ein vorschlag und wenn wir den text zusammen bearbeiten, kommt ein gutes stücken für die FAQ raus....



  • Und wieviele kennst du, die Qt, GTK etc. benutzen?

    Eine Menge. Dafür kenne ich keine ernsthaftes Projekt, was MFC, VCL, CLX oder den Rest benutzt 🙄

    @junix

    Objektivität ist eine Illusion. Ausserdem kann ich am Kommentar zur VCL nix Subjektives finden? (zugegeben ihc hab den Punkt nur kurz überflogen)

    den Kommentar den ich meinte hat er mittlerweile abgeschwächt.

    Wie Jester schon sehr ähnlich sagte: Ist mir zu Linux und OpenSource-Lastig. Wieso ich jetzt schon glaube das behaupten zu können? Ganz einfach: man tendiert nunmal dazu, das womit man arbeitet präziser zu thematisieren als das wovon man nur mal etwas gehört hat.

    gut, dann lassen wir das Thema sein. Ich lösch auch gleich mal den Rest der FAQ, weil die Leute ja ihre Wege und Vorstellungen da bevorzugen

    🙄



  • Jester schrieb:

    kingruedi schrieb:

    Werd aber was ähnliches bald schreiben.

    Ist mir zu Linux-lastig. :p

    rofl...



  • kingruedi schrieb:

    Und wieviele kennst du, die Qt, GTK etc. benutzen?

    Eine Menge. Dafür kenne ich keine ernsthaftes Projekt, was MFC, VCL, CLX oder den Rest benutzt 🙄

    *lol*



  • Mein Vorschlag:

    GUI Programmierung
    http://www.geocities.com/SiliconValley/Vista/7184/guitool.html

    ⚠

    • Ohne fundierte C++ Kentnisse ist es nicht zu empfehlen ein GUI Toolkit zu benutzen. Lieber erst vernünftig C++ lernen!
    • Wenn dir die Informationen nicht ausreichen, welches Toolkit dir am besten liegt, solltest du dich auf den Projekt Homepages informieren.

    Platform übergreifend

    • CLX - Die CLX ist ein von Borland entwickeltes Framework, dass für Linux und Windows verfügbar ist. Das Framework bietet ein Widget System auf Basis des Qt Toolkits an (siehe Qt weiter unten). Das Framework wird mit dem Borland C++ Builder und Kylix ausgeliefert und ist für C++ und Objekt Pascal (Delphi) verfügbar. Die CLX gibt es in einer OpenSource Version als FreeCLX. (siehe VCL, VCL/CLX-Forum)
    • GTK+ - GTK+ ist ein sehr populäres Widget System, welches unter X11 (Unix/Linux/BSD), Linux Framebuffer, MacOS X und Windows läuft. GTK+ ist in einem Objekt orientiertem C Stil geschrieben und unter der LGPLizenz frei verfügbar. Es existieren auch verschiedene Bindings für andere Sprachen, wie C++ (siehe GTKmm), C#, Ruby, PHP, Perl, Pyhton uvm.
    • GTKmm - GTKmm ist eine C++ Widget Library die auf GTK+ (siehe oben) aufbaut. GTKmm ist im Gegensatz zu den meisten Widget Systemen in einem sehr modernen C++ geschrieben.
    • FLTK - FLTK ist ein C++ Widget System, dass unter MacOS X, X11 (Unix/Linux/BSD) und Windows läuft. Dabei handelt es sich um eine Art ThinLayer über den unterliegenden Systemen, so dass man auch direkte Funktionen des unterliegenden Systems anwenden kann. FLTK steht der LGPLizenz.
    • FOX - Das FOX Toolkit ist ebenfalls ein C++ Widget System, dass für Windows und X11 (Unix/Linux/BSD) verfügbar ist. Das System benutzt aber sehr viele Macros!
    • Qt - Qt ist ein C++ Framework, dass für Windows, X11 (Unix/Linux/BSD), MacOS X und Embedded Systeme verfügbar ist. Qt gibt es einmal in einer freien GPL Version (wobei die Windows GPL Version leider nicht mehr aktuell ist) und unter einer kommerziellen Lizenz.
    • VCF - Die VCF ist eine weitere Platform unabhängige C++ Library. Sie unterstützt MacOSX, Windows und X11 (Unix/Linux/BSD). Die VCF ist wie GTKmm in sehr modernem C++ geschrieben.
    • wxWidgets (früher wxWindows) - wxWidgets ist ein C++ Framework, dass nativen Widget Support anbietet und auf Basis von Windows, GTK+, Motif, Mac OS, MGL, OS/2 und einigen Embedded Systemen implementiert ist. Das System wirkt relativ MFC (siehe unten) ähnlich.

    MacOS X

    • Cocoa - Cocoa ist das native Framework für MacOS X. Das System ist ein Nachfolger des NeXTStep/OpenStep Systems (siehe auch GNUStep weiter unten). Es ist in Objective-C geschrieben, aber auch Integration in C++ (Man kann Objecive-C und C++ Code sogar in einer Datei kombinieren!), Java, AppleScript uvm.

    Unix/Linux/BSD/X11

    • GNUStep - GNUStep ist ähnlich wie Cocoa/MacOSX ein auf NeXTStep/OpenStep basierendes System und in Objective-C entwickelt. Aber genau wie bei Cocoa kann man direkt Objective-C und C++ mischen. Auch Anbindungen für Java und Ruby sind vorhanden. GNUStep steht unter der GPL/LGPL
    • OpenMotif/Motif - Motif ist ein vom IEEE 1295 Standard spezifiziertes Widget Framework. Motif war das erste Unix Widget System. Es ist einmal als kommerzielle Variante (Motif) erhältlich und einmal als OpenSource-Variante (nicht OSI Konform), die eine kostenlose Benutzung auf einer OpenSource Platform erlaubt.

    Unix/Linux-FAQ: GUI Programmierung (X, KDE/QT, GNOME/GTK)
    GUI Toolkits for The X Window System

    Windows

    • Avalon - Avalon ist das neue native Widget System für die kommende Windows Version (Longhorn). Avalon basiert auf dotNET.
    • MFC - Die MFC ist ein von Microsoft entwickeltes C++ Framework, welches direkt auf der WinAPI basiert. Die MFC gibt es nur in Verbindung mit dem Visual Compiler oder dem Borland Compiler. Die MFC wird aber in Zukunft nicht mehr von Microsoft weiter entwickelt! (siehe auch MFC Forum)
    • VCL - Die VCL ist eine Library von Borland, die mit dem Borland C++ Builder und Delphi zusammen vertrieben wird. Dabei wurde auch die Entwicklung der VCL eingestellt und zum einen durch die Platformunabhängige und auf Qt basierende CLX Library (siehe oben) und zum anderen im BuilderX durch eine wxWidgets (siehe oben) basierene Lösung ersetzt <-- weiss ich nicht genau (siehe VCL/CLX-Forum)
    • WinAPI - Die WinAPI ist die native Schnittstelle von Windows und in C gehalten. Aber auch die WinAPI wird in Zukunft nicht mehr weiter entwickelt und durch eine dotNET Lösung ersetzt (siehe Avalon)
    • WindowsForms - Die WindowsForms (oder auch WinForms) sind eine dotNET Library, zur Widget Programmierung. Die vorhandenen WindowsForms Tools sind aber auf C# ausgerichtet. Die WinForms gehören aber nicht zur Core Library von dotNET und sind eine Microsoft Erweiterung. Deswegen sind die WinForms nicht platformunabhängig und eine Unterstützung von alternativen dotNET Implementierung ist nicht sicher oder 100% kompatibel.


  • Eine Menge. Dafür kenne ich keine ernsthaftes Projekt, was MFC, VCL, CLX oder den Rest benutzt

    hehe.

    Werd aber was ähnliches bald schreiben.

    Na dann bin ich mal gespannt.
    Ich hab irgendwie das Gefühl, dass MS dabei nicht gut wegkommen wird....

    Vielleicht sollten wir dich am Schreibtisch festbinden, den Kopf Richtung Monitor fixieren und Streichhölzer zwischen die Augenlieder klemmen.
    Dann ne 2 wöchige MS- Produktpräsentation abspielen.



  • Na dann bin ich mal gespannt.

    hab ich gerade gepostet. Bitte kritisieren.

    Vielleicht sollten wir dich am Schreibtisch festbinden, den Kopf Richtung Monitor fixieren und Streichhölzer zwischen die Augenlieder klemmen.
    Dann ne 2 wöchige MS- Produktpräsentation abspielen.

    zu viel Uhrwerk Orange gesehen? Dabei bin ich ja gar nicht mehr so schlimm!



  • Marc++us schrieb:

    kingruedi schrieb:

    Eine Menge. Dafür kenne ich keine ernsthaftes Projekt, was MFC, VCL, CLX oder den Rest benutzt 🙄

    *lol*

    😃



  • hab ich gerade gepostet. Bitte kritisieren.

    oh, hatte ich nicht gesehen.
    Sieht ja sehr sachlich aus und MS ist auch drin.

    Dabei bin ich ja gar nicht mehr so schlimm!

    hehe



  • IMHO fehlen Details über die verwendete Sprache. Vielleicht interessierts ja wen, dass weder die VCL noch Windows Forms wirklich C++ verwenden 😉



  • kingruedi schrieb:

    Mein Vorschlag:[...]

    In meinen Augen dürfte ruhig etwas mehr ins Detail gegangen werden. BT hat das Ganze etwas detaillierter behandelt, was mir eigentlich recht gut gefallen hat. Auch wenn er zum Thema MFC etwas gepatzt hat (o;



  • Vom inhaltlichen her sind die Vorschläge ja ganz gut, aber irgendwie fehlt mir eben der Bezug zum Thema.

    Nach dem Lesen eurer Artikel kann ich zwar viele Libraries aufzählen aber mich trotzdem noch nicht entscheiden welche Library ich nun letzten Endes benützen soll.

    Vorschläge:

    - Einsatzgebiete von Libraries
    - Eventl. Beispielprojekte (OpenSource?)

    MfG SideWinder



  • SideWinder schrieb:

    Nach dem Lesen eurer Artikel kann ich zwar viele Libraries aufzählen aber mich trotzdem noch nicht entscheiden welche Library ich nun letzten Endes benützen soll.

    hmm... das muss letzten Endes auch jeder fuer sich entscheiden. Man kann zwar eingrenzen, was fuer APIs in Frage kommen (will ich eine Crossplattform-Lib, will ich RAD-Tools, will ich eine OpenSource-Lib, laeuft es mit meinem Compiler...), aber es ist dann doch Geschmacksache, ob man z. B. zu Qt oder zu GTK greift.

    *g* und ausserdem: als ich geschrieben hab, VCL ist am einfachsten fuer Neueinsteiger, war das gleich wieder zu subjektiv.
    Wenn man ins andere Extrem geht und lediglich Features aufzaehlt, ist dem Noob auch nicht viel geholfen. <== was jetzt auch mein Kritikpunkt an kingruedi's Beitrag waere. Gut find ich hingegend, dass er besser auf die Lizenzierung eingegangen ist. 🙂

    EDIT: ach ja, ein Beispiel vuer ein VCL-Projekt waere z. B. CloneCD 🙂


Anmelden zum Antworten