Auf dieser Seite

Verwendung benutzerdefinierter Widgets mit dem „ Qt Widgets “-Designer

Qt Widgets Der Designer kann benutzerdefinierte Widgets über seinen erweiterbaren Plugin-Mechanismus anzeigen, wodurch die Palette der gestaltbaren Widgets durch den Benutzer und Drittanbieter erweitert werden kann. Alternativ ist es möglich, vorhandene Widgets als Platzhalter für Widget-Klassen zu verwenden, die ähnliche APIs bereitstellen.

Umgang mit benutzerdefinierten Widgets

Obwohl der „ Qt Widgets “-Designer alle Standard-Qt-Widgets unterstützt, sind einige spezialisierte Widgets aus verschiedenen Gründen möglicherweise nicht standardmäßig verfügbar:

  • Benutzerdefinierte Widgets sind zum Zeitpunkt der Gestaltung der Benutzeroberfläche möglicherweise noch nicht verfügbar.
  • Benutzerdefinierte Widgets können plattformspezifisch sein, und Designer entwickeln die Benutzeroberfläche möglicherweise auf einer anderen Plattform als die Endbenutzer.
  • Der Quellcode für ein benutzerdefiniertes Widget ist nicht verfügbar, oder die Designer der Benutzeroberfläche können das Widget aus nicht-technischen Gründen nicht verwenden.

In den oben genannten Situationen ist es dennoch möglich, Formulare so zu entwerfen, dass benutzerdefinierte Widgets in der Anwendung verwendet werden können. Dazu können wir die Widget-Promotion-Funktion des „ Qt Widgets “-Designers nutzen.

In allen anderen Fällen, in denen der Quellcode der benutzerdefinierten Widgets verfügbar ist, können wir das benutzerdefinierte Widget für die Verwendung mit dem „ Qt Widgets Designer“ anpassen.

Widgets hochstufen

Screenshot des Fensters „Promoted Widgets“ mit Optionen zum Hinzufügen einer benutzerdefinierten Widget-Klasse durch Angabe einer Basisklasse, eines Namens für die Promoted-Klasse und einer Header-Datei

Wenn Formulare entworfen werden müssen, bestimmte benutzerdefinierte Widgets dem Designer jedoch nicht zur Verfügung stehen, können wir ähnliche Widgets als Ersatz für die fehlenden Widgets verwenden. Beispielsweise könnten wir Instanzen einer benutzerdefinierten Drucktastenklasse, ` MyPushButton`, durch Instanzen von ` QPushButton ` darstellen und diese zu ` MyPushButton ` befördern, damit uic geeigneten Code für diese fehlende Klasse generiert.

Bei der Auswahl eines Widgets als Platzhalter ist es sinnvoll, die API des fehlenden Widgets mit denen der Standard-Qt-Widgets zu vergleichen. Bei spezialisierten Widgets, die von Standardklassen abgeleitet sind, ist die Basisklasse des benutzerdefinierten Widgets die naheliegende Wahl als Platzhalter; so könnte beispielsweise QSlider für spezialisierte Unterklassen von QSlider verwendet werden.

Bei spezialisierten Widgets, die keine gemeinsame API mit den Standard-Qt-Widgets teilen, lohnt es sich, die Anpassung eines benutzerdefinierten Widgets für die Verwendung im „ Qt Widgets Designer“ in Betracht zu ziehen. Ist dies nicht möglich, ist „ QWidget “ die naheliegende Wahl für ein Platzhalter-Widget, da es den kleinsten gemeinsamen Nenner aller Widgets darstellt.

Um einen Platzhalter hinzuzufügen, wählen Sie ein Objekt einer geeigneten Basisklasse aus und wählen Sie im Kontextmenü des Formulars „Zu … befördern“ aus. Nachdem Sie den Klassennamen und die Header-Datei im unteren Teil des Dialogfelds eingegeben haben, wählen Sie „Hinzufügen“. Die Platzhalterklasse erscheint nun zusammen mit der Basisklasse in der oberen Liste. Klicken Sie auf die Schaltfläche „Hochstufen“, um diese Auswahl zu bestätigen.

Wenn nun das Kontextmenü des Formulars über Objekten der Basisklasse geöffnet wird, erscheint die Platzhalterklasse im Untermenü „Zu … befördern“, wodurch Objekte bequem in diese Klasse befördert werden können.

Ein hochgestuftes Widget kann durch Auswahl von „Herabstufen auf“ im Kontextmenü des Formulars wieder auf seine Basisklasse zurückgesetzt werden.

Benutzerdefinierte Widgets

Benutzerdefinierte Widgets können für die Verwendung mit dem „ Qt Widgets Designer“ angepasst werden, wodurch Designer die Möglichkeit erhalten, die Benutzeroberfläche mit den tatsächlichen Widgets zu konfigurieren, die in einer Anwendung verwendet werden sollen, anstatt mit Platzhalter-Widgets. Der Vorgang zum Erstellen eines Plugins für benutzerdefinierte Widgets wird im Kapitel „Erstellen benutzerdefinierter Widgets für den „ Qt Widgets Designer“ “ dieses Handbuchs beschrieben.

Um ein auf diese Weise erstelltes Plugin zu verwenden, muss sichergestellt werden, dass sich das Plugin in einem Pfad befindet, den der „ Qt Widgets Designer“ bei der Suche nach Plugins durchsucht. Im Allgemeinen werden Plugins, die im „ $QTDIR/plugins/designer “ gespeichert sind, beim Start des „ Qt Widgets Designer“ geladen. Weitere Informationen zum Erstellen und Installieren von Plugins finden Sie hier. Informationen zum Erstellen von Plugins finden Sie auch im Plugins-HOWTO-Dokument.

© 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.