Alles zur GUI Programmierung in C und C++



  • 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/TnFox - 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! TnFOX ist eine Abspaltung vom FOX Projekt und bringt eine Qt ähnliche API, Exception Sicherheit und eine Erweiterung des Frameworks.
    • 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 (mit diesen Zusätzen) und unter einer kommerziellen Lizenz. Trolltech, die Firma hinter Qt, liefert auch ein Framework um Win32 oder MFC Programme zu Qt zu portierten (siehe auch Migrating from MFC to Qt - FAQ). Ab der Version 4.5 wird QT unter LGPL stehen.
    • Ultimate++ - Ultimate++ ist eine kostenlose und freie GUI-Library mit modernem C++ Design. Verfügbar ist sie sowohl für Windows als auch für Linux. Parallel wird mit Ultimate++ auch eine C++ IDE namens TheIDE entwickelt. Ultimate++ unterliegt der BSD Lizenz (Vielen Dank an Artchi für diesen Eintrag)
    • VCF - Die VCF ist eine weiter Widget Library. Zur Zeit funktioniert sie nur unter Windows. Ein MacOS X Port ist in Arbeit und ein Port für Unix/Linux ist geplant.
    • 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 wie Cocoa/MacOSX ein NeXTStep/OpenStep ähnliches 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/LessTif - 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. LessTif ist eine freie unter der LGPL veröffentlichte Motif Implementierung.

    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 wird es wahrscheinlich auch als Backport für Windows XP und Windows Server 2003 geben. 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. (siehe auch MFC Forum)
    • SmartWin++ - Smartwin++ ist eine moderne C++ GUI Library für die Windows-Platform und macht starken Gebrauch von Templates, der Standard-C++ Library und den Boost Libraries. Das Ziel ist es die MFC und WTL zu ersetzen, auch wenn sie nicht zu diesen kompatibel ist. Smartwin++ unterliegt der BSD Lizenz. (Vielen Dank an Artchi für diesen Eintrag)
    • 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. Trotz vieler Anläufe neue APIs einzuführen hat sich die WInAPI bis heute hartnäckig gehalten und ist immer noch die Basis aller GUI-Schnittstellen unter Windows.
    • 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.

    dieser Beitrag ist in folgender Diskussion entstanden

    GUI Ergonomie/Gestalltung

    siehe hier

    Änderungen

    • 2008-01-27: QT Update
    • 2005-02-13: TnFOX zu FOX hinzugefügt
    • 2004-09-07: LessTif zu Motif hinzugefügt

    //Edit: MFC geändert (da es weiterentwickelt wird) [evilissimo]


Anmelden zum Antworten