Auf dieser Seite

Widgets-Anleitung

Einführung

Widgets sind die grundlegenden Bausteine für Anwendungen mit grafischer Benutzeroberfläche (GUI), die mit Qt erstellt werden. Jede GUI-Komponente (z. B. Schaltflächen, Beschriftungen, Texteditoren) ist ein „ widget “, das an einer beliebigen Stelle innerhalb eines Benutzeroberflächenfensters platziert oder als eigenständiges Fenster angezeigt wird. Jeder Widget-Typ wird durch eine Unterklasse von ` QWidget` bereitgestellt, die wiederum eine Unterklasse von ` QObject` ist.

QWidget ist keine abstrakte Klasse. Sie kann als Container für andere Widgets verwendet werden und lässt sich mit minimalem Aufwand unterklassen, um neue, benutzerdefinierte Widgets zu erstellen. ` QWidget ` wird häufig verwendet, um ein Fenster zu erstellen, in dem andere ` QWidget`-Objekte platziert werden.

Wie bei „ QObjects“ können „ QWidgets“ mit übergeordneten Objekten erstellt werden, um die Zugehörigkeit anzugeben und sicherzustellen, dass Objekte gelöscht werden, wenn sie nicht mehr verwendet werden. Bei Widgets haben diese Eltern-Kind-Beziehungen eine zusätzliche Bedeutung: Jedes untergeordnete Widget wird innerhalb des Bildschirmbereichs angezeigt, den sein übergeordnetes Widget einnimmt. Das bedeutet, dass beim Löschen eines Fenster-Widgets auch alle darin enthaltenen untergeordneten Widgets gelöscht werden.

Eine Main-Funktion schreiben

Viele der mit Qt bereitgestellten GUI-Beispiele folgen dem Muster einer ` main.cpp `-Datei, die den Standardcode zur Initialisierung der Anwendung enthält, sowie einer beliebigen Anzahl weiterer Quell- und Header-Dateien, die die Anwendungslogik und benutzerdefinierte GUI-Komponenten enthalten.

Eine typische „ main() “-Funktion in „ main.cpp “ sieht wie folgt aus:

#include <QtWidgets>

// Include header files for application components.
// ...

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // Set up and show widgets.
    // ...

    return app.exec();
}

Zunächst wird ein ` QApplication `-Objekt instanziiert, das mit über die Befehlszeile übergebenen Argumenten konfiguriert werden kann. Nachdem die Widgets erstellt und angezeigt wurden, wird ` QApplication::exec()` aufgerufen, um die Ereignisschleife von Qt zu starten. Die Kontrolle geht an Qt über, bis diese Funktion zurückkehrt. Schließlich gibt ` main() ` den von ` QApplication::exec()` zurückgegebenen Wert zurück.

Einfache Widget-Beispiele

Jedes dieser einfachen Widget-Beispiele ist vollständig innerhalb der Funktion ` main() ` geschrieben.

Praktische Widget-Beispiele

In diesen fortgeschritteneren Beispielen ist der Code zum Erstellen der Widgets und Layouts in anderen Dateien gespeichert. Beispielsweise kann die Benutzeroberfläche für ein Hauptfenster im Konstruktor einer Unterklasse von „ QMainWindow “ erstellt werden.

Erstellen der Beispiele

Wenn Sie Qt über ein Binärpaket installiert oder selbst kompiliert haben, sollten die in diesem Tutorial beschriebenen Beispiele bereits kompiliert und lauffertig sein. Wenn Sie sie ändern und neu kompilieren möchten, gehen Sie wie folgt vor:

  1. Wechseln Sie in einer Befehlszeile in das Verzeichnis, das das von Ihnen geänderte Beispiel enthält.
  2. Geben Sie „ qmake “ ein und drücken Sie die „ Return “-Taste. Sollte dies nicht funktionieren, stellen Sie sicher, dass sich die ausführbare Datei in Ihrem Pfad befindet, oder geben Sie den vollständigen Pfad an.
  3. Unter Linux/Unix und macOS geben Sie „ make “ ein und drücken Sie die Taste „ Return “; unter Windows mit Visual Studio geben Sie „ nmake “ ein und drücken Sie die Taste „ Return “.

Im aktuellen Verzeichnis wird eine ausführbare Datei erstellt. Unter Windows befindet sich diese Datei möglicherweise in einem Unterverzeichnis namens „ debug “ oder „ release “. Sie können diese ausführbare Datei ausführen, um den Beispielcode in Aktion zu sehen.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.