ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

GUI-Toolkits

Inhaltsverzeichnis
  1. Übersicht
  2. Links

In diesem Wiki-Artikel werden Bibliotheken für grafische Benutzeroberflächen vorgestellt, mit deren Hilfe sich ein Programm mit einem grafischen Interface ausstatten lässt.

Übersicht

Im Folgenden eine kurze Liste mit den entsprechenden Paketen aus den Ubuntu-Paketquellen.

Übersicht Bindings
Name Sprache Paket Repository Website Bild C++ C# Java Perl Python Ruby
FLTK C++ libfltk1.1-dev main fltk.org 🇬🇧 * Ja
FOX C++ libfox1.6-dev universe fox-toolkit.org 🇬🇧 * Ja Ja Ja
GTK+ C libgtk2.0-dev, libgtk-3-dev main gtk.org 🇬🇧 * Ja Ja Ja Ja Ja Ja
Qt C++ libqt4-*, python-qt4-* main qt-project.org 🇬🇧 Ja Ja Ja Ja Ja Ja
Wt C++ witty-dev universe webtoolkit.eu 🇬🇧 Ja
wxWidgets C++ libwxgtk2.6-dev universe wxwidgets.org 🇬🇧 * Ja Ja Ja Ja Ja Ja

FLTK

FLTK (Fast Light Toolkit, gesprochen "fulltick") ist eine plattformunabhängige C++ Bibliothek. Das Ziel ist es ein sehr "leichtes" GUI-Toolkit anzubieten, das ohne extra Klassen für z.B. Strings auskommt und sich nur auf die GUI konzentriert.

FOX

Bei FOX handelt es sich um ein Toolkit, das in C++ geschrieben ist. Die Zielsetzung 🇬🇧 liegt hier auf möglichst großer Plattformunabhängigkeit, guter Leistung und leichter Erweiterbarkeit. Bindings gibt es für folgende Sprachen:

GTK+

Da Qt am Anfang seiner Entwicklung nicht unter einer freien Lizenz stand, wurde GTK+ (ursprünglich Gimp ToolKit) als Alternative aus der Taufe gehoben. Dem von der Verbreitung her Qt ebenbürtigen GTK+ ist ein eigener Artikel gewidmet: GTK+/Programmierung.

Qt

Dieses in C++ geschriebene Framework wird Open-Source-Projekt (vorher von Nokia, davor von Trolltech) entwickelt. Qt bietet Module für viele verschiedene Zwecke, z. B. Threads, Netzwerk, OpenGL, aber natürlich auch ein GUI-Modul.

Qt dient dem KDE-Projekt als Basis für viele Softwarekomponenten, insbesondere natürlich auch der GUI. Qt ist plattformunabhängig und verwendet unter Windows und Mac OS X die nativen Controls, um sich besser in die Oberfläche des jeweiligen Systems zu integrieren. Auch für Qt existieren eine Reihe von Bindings 🇬🇧 für andere Sprachen außer C++:

  • C# 🇬🇧 (Qyoto)

  • Java 🇬🇧 (QtJava)

  • Perl 🇬🇧 (PerlQt)

  • Python 🇬🇧 (PySide)

  • Python 🇬🇧 (PyQt)

  • Ruby 🇬🇧 (qtbindings, vormals Korundum, QtRuby)

Die Online Documentation 🇬🇧 bietet eine exzellente Dokumentation zu Qt einschließlich zahlreicher Beispiele und Tutorials. Im Paket qt4-doc ist diese ebenfalls enthalten.

Wt

Wt ermöglicht es, Web-Anwendungen wie klassische Desktop-Anwendungen in C++ zu entwickeln. Hierfür bringt es das aus Qt bekannte Signal/Slot-Prinzip sowie Layout-Manager mit. Daneben zählen gute Skalierbarkeit, eingebauter Schutz vor häufig auftretenden Sicherheitsproblemen im Web und Browserunabhängigkeit zu den Kern-Features von Wt.

wxWidgets

Das wxWidgets Toolkit (früher als wxWindows bekannt) legt sehr viel Wert auf große Plattformunabhängigkeit. Für dieses Toolkit existiert ein breites Spektrum an Bindings für andere Sprachen als C++. Unter anderem für:

  • Haskell 🇬🇧 (wxHaskell)

  • C# 🇬🇧 (wxNet)

  • Java 🇬🇧 (wxJava)

  • Perl 🇬🇧 (wxPerl)

  • Python 🇬🇧 (wxPython)

  • Ruby 🇬🇧 (wxRuby)

Literatur

Für wxWidgets gibt es eine sehr gute Dokumentation für die Versionen 2.4 🇬🇧 , 2.6 🇬🇧 und 2.8 🇬🇧, welche man aber auch mit den Paketen

  • wx2.4-doc (universe) bzw.

  • wx2.6-doc (universe) bzw.

  • wx2.8-doc (universe)

aus den Quellen installieren kann.

Zusätzlich gibt es das 744-Seiten dicke Buch Cross-Platform GUI Programming with wxWidgets 🇬🇧 kostenlos zum Download (links unter "More Information → Download").

Einbindung wx2.4

Normalerweise ist die Einbindung von wxWidgets in den Entwicklungsumgebungen kein Problem, so wird KDevelop beispielsweise von Haus aus komplett konfiguriert. Bei älteren CodeBlocks-Versionen in Verbindung mit wx2.4 gibt es dagegen Probleme. Nach der Erstellung eines neues Projektes öffnet man die Projekt-Optionen unter "Project → Build Options". Im Tab "Compiler" wechselt man zu "Other Options". In der untersten Zeile sollte der Eintrag wx-config --cflags stehen. Man öffnet nun ein Terminal und gibt genau diesen Befehl

wx-config --cflags 

ein. Man kopiert die Ausgabe des Befehls nun und fügt diese in den Compiler-Optionen von oben ein. Eine Ausgabe könnte dabei wie folgt lauten

-I/usr/lib/wx/include/gtk-2.4 -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES

Außer dieser einen Zeile sollte in den Compiler-Optionen nichts stehen und alles andere gelöscht werden. Danach wechselt man in das Tab "Linker" und findet dort wieder einen wx-config Aufruf. Diesen gibt man wieder im Terminal mit

wx-config --libs 

ein. Die Ausgabe, die wie folgt

-pthread -lwx_gtk-2.4

aussehen könnte, kopiert man wieder in die Linker-Optionen und ersetzt den alten wx-config Aufruf. Die Anleitung zur Behebung in Code::Blocks sollte aber auch auf jede IDE und Compiler angewandt werden können.

Diese Revision wurde am 3. Januar 2015 15:22 von Hbb erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung, Übersicht