Grafische Benutzeroberfläche

Grafische Benutzeroberfläche

Ich entwickle in C++. Ich habe gehört, dass GTK durch Wayland ersetzt wird.

Welche GUI-Bibliotheken sind langfristig für C++ geeignet?

Antwort1

Wayland ist ein Ersatz fürX11. GTK+ ist immer noch das von GNOME und einigen anderen Desktopumgebungen verwendete GUI-Toolkit und es gibt keine Pläne, es zu ersetzen.

Die beiden großen GUI-Bibliotheken für Linux sindQtUndGTK+. Beide können mit C++ verwendet werden und werden dies in absehbarer Zukunft wahrscheinlich auch bleiben.

Welche für Sie besser ist, hängt davon ab, welche Desktop-Umgebung Ihr primäres Ziel ist. Beide Bibliotheken können mit jeder Desktop-Umgebung verwendet werden, aber Ihre App wird ein anderes Erscheinungsbild haben, wenn sie das „falsche“ GUI-Toolkit für Ihre Desktop-Umgebung verwendet.

Wenn Sie Ihre App auch auf anderen Systemen als Linux nutzen möchten, ist Qt in der Regel die bessere Wahl.

Antwort2

Lichtung

Obwohl Sie C++-Code verwenden können, um Widgets zu instanziieren und anzuordnen, kann dies schnell mühsam und repetitiv werden. Und es ist eine Neukompilierung erforderlich, um Änderungen anzuzeigen. Mit der Glade-Anwendung können Sie Widgets auf dem Bildschirm anordnen und dann eine XML-Beschreibung der Anordnung speichern.

Dies hat folgende Vorteile:

  • Es ist weniger C++-Code erforderlich.
  • Änderungen an der Benutzeroberfläche sind schneller erkennbar und die Benutzeroberflächen können verbessert werden.
  • Designer ohne Programmierkenntnisse können Benutzeroberflächen erstellen und bearbeiten.

Die in Glade erstellten Benutzeroberflächen werden im bekannten XML-Format gespeichert, was eine einfache Integration mit externen Tools ermöglicht. Sie werden sie wahrscheinlich mit Tools wie libglade verwenden wollen, das die XML-Dateien laden und die Schnittstellen zur Laufzeit erstellen kann.

Um Glade GTK+ User Interface Builder in allen derzeit unterstützten Versionen von Ubuntu zu installieren, öffnen Sie das Terminal und geben Sie ein:

sudo apt install glade  

Um nur die Entwicklungsdateien für die GTK+-Bibliothek zu installieren, ohne Glade zu installieren, geben Sie Folgendes ein:

sudo apt install libgtk-3-dev

Qt-Ersteller

Qt Creator ist eine plattformübergreifende integrierte Entwicklungsumgebung (IDE), die die Entwicklung mit dem Qt-Anwendungsframework schneller und einfacher machen soll.

Es enthält:

  • Ein erweiterter C++-Code-Editor
  • Integriertes GUI-Layout und Formulardesigner
  • Projekt- und Build-Management-Tools
  • Integriertes, kontextsensitives Hilfesystem
  • Visueller Debugger
  • Tools für die schnelle Codenavigation
  • Unterstützt mehrere Plattformen
  • Qt Quick Designer

Um QT Creator in allen derzeit unterstützten Versionen von Ubuntu zu installieren, öffnen Sie das Terminal und geben Sie ein:

sudo apt install qtcreator 
$apt-cache hängt von qtcreator ab | grep qt  
Abonnieren  
  Hängt ab von: libqt5sql5-sqlite  
  Hängt ab von: qml-module-qtqml-models2  
  Hängt ab von: qml-module-qtquick-controls  
  Hängt ab von: qml-module-qtquick2  
  Hängt ab von: qtchooser  
    qtchooser:i386  
  Hängt ab von: qtcreator-data  
  Hängt ab von: libqbsqtprofilesetup1.10  
  Hängt ab von: libqt5concurrent5  
  Hängt ab von: libqt5core5a   
  Hängt ab von: libqt5designer5  
  Hängt ab von: libqt5designercomponents5  
  Hängt ab von: libqt5gui5  
  Hängt ab von: libqt5help5  
  Hängt ab von: libqt5network5  
  Hängt ab von: libqt5printsupport5  
  Hängt ab von: libqt5qml5  
  Hängt ab von: libqt5quick5  
  Hängt ab von: libqt5quickwidgets5  
  Hängt ab von: libqt5sql5  
  Hängt ab von: libqt5widgets5  
  Hängt ab von: libqt5xml5  
  Hängt ab von: <qtdeclarative-abi-5-9-5>  
    libqt5qml5  
  Empfiehlt: qt5-doc  
  Empfiehlt: qt5-qmltooling-plugins  
  Empfiehlt: qtbase5-dev-tools  
    qtbase5-Entwicklertools:i386  
  Empfiehlt: qtcreator-doc  
  Empfiehlt: qtdeclarative5-dev-tools  
    qtdeclarative5-dev-tools:i386  
  Empfiehlt: qttools5-dev-tools  
    qttools5-Entwicklertools:i386  
  Empfiehlt: qttranslations5-l10n  
  Empfiehlt: qtxmlpatterns5-dev-tools  
    qtxmlpatterns5-dev-tools:i386  
    qterminal

Bildbeschreibung hier eingeben
(Klicken Sie auf das Bild, um es zu vergrößern)

verwandte Informationen