Erstellen und Verwenden von Komponenten für den „ Qt Widgets “-Designer
Erstellen benutzerdefinierter Widget-Plugins
Bei der Implementierung eines benutzerdefinierten Widget-Plugins für den „ Qt Widgets “-Designer müssen Sie eine Unterklasse von ` QDesignerCustomWidgetInterface ` erstellen, um Ihr benutzerdefiniertes Widget für den „ Qt Widgets “-Designer verfügbar zu machen. Ein einzelnes benutzerdefiniertes Widget-Plugin wird als separate Bibliothek erstellt. Wenn Sie mehrere benutzerdefinierte Widget-Plugins in dieselbe Bibliothek einbinden möchten, müssen Sie zusätzlich eine Unterklasse von ` QDesignerCustomWidgetCollectionInterface` erstellen.
Um Ihrem benutzerdefinierten Widget-Plugin das erwartete Verhalten und die erwartete Funktionalität innerhalb des Arbeitsbereichs des „ Qt Widgets “-Designers zu verleihen, können Sie die zugehörigen Erweiterungsklassen unterklassen:
Die Klasse „ QDesignerContainerExtension “ ermöglicht es Ihnen, Seiten zu einem benutzerdefinierten mehrseitigen Container hinzuzufügen. Die Klasse „ QDesignerTaskMenuExtension “ ermöglicht es Ihnen, benutzerdefinierte Menüeinträge zum Aufgabenmenü des „ Qt Widgets “-Designers hinzuzufügen. Mit der Klasse „ QDesignerMemberSheetExtension “ können Sie die Mitgliedsfunktionen eines Widgets bearbeiten, das bei der Konfiguration von Verbindungen im Modus zur Bearbeitung von Signalen und Slots des „ Qt Widgets “-Designers angezeigt wird. Und schließlich können Sie mit der Klasse „ QDesignerPropertySheetExtension “ die Eigenschaften eines Widgets bearbeiten, das im Eigenschafteneditor des „ Qt Widgets “-Designers angezeigt wird.
Qt Widgets Designers" src="images/qtdesignerextensions.png" title="Diagramm zur Darstellung der Beziehungen zwischen den Komponenten des Qt Widgets Designers"/>
Im „ Qt Widgets “-Designer werden die Erweiterungen erst dann erstellt, wenn sie benötigt werden. Aus diesem Grund müssen Sie bei der Implementierung von Erweiterungen auch eine Unterklasse von ` QExtensionFactory` erstellen, d. h. eine Klasse, die Instanzen Ihrer Erweiterungen erstellen kann. Darüber hinaus müssen Sie dafür sorgen, dass der Erweiterungsmanager des „ Qt Widgets “-Designers Ihre Factory registriert; der Erweiterungsmanager steuert die Erstellung von Erweiterungen bei Bedarf, und Sie können über ` QDesignerFormEditorInterface ` und ` QExtensionManager` darauf zugreifen.
Ein vollständiges Beispiel für die Erstellung eines benutzerdefinierten Widget-Plugins mit einer Erweiterung finden Sie in den Beispielen „Task Menu Extension “ oder „Container Extension “.
Zugriff auf Komponenten des „ Qt Widgets “-Designers
Der Zweck der in diesem Abschnitt erwähnten Klassen besteht darin, Zugriff auf die Komponenten, Manager und den Arbeitsbereich des „ Qt Widgets “-Designers zu gewähren; sie sind nicht dazu gedacht, direkt instanziiert zu werden.
Qt Widgets Der Designer besteht aus mehreren Komponenten. Er verfügt über einen Aktionseditor, einen Eigenschaftseditor, eine Widget-Box und einen Objektinspektor, die Sie in seinem Arbeitsbereich anzeigen können.
Qt Widgets Designer-Editors zeigt" src="images/qtdesignerscreenshot.png" title="Screenshot, der die Benutzeroberfläche des Qt Widgets Designer-Editors zeigt"/>
Qt Widgets Der Designer verfügt außerdem über ein Objekt, das im Hintergrund arbeitet; es enthält die Logik, die alle Komponenten des „ Qt Widgets “-Designers zu einer einheitlichen Anwendung integriert. Sie können über den „ QDesignerFormEditorInterface “ auf dieses Objekt zugreifen, um Schnittstellen zu den Komponenten des „ Qt Widgets “-Designers abzurufen:
- QDesignerActionEditorInterface
- QDesignerObjectInspectorInterface
- QDesignerPropertyEditorInterface
- QDesignerWidgetBoxInterface
Darüber hinaus können Sie „ QDesignerFormEditorInterface “ verwenden, um Schnittstellen zum Erweiterungsmanager (QExtensionManager) und zum Formularfenster-Manager (QDesignerFormWindowManagerInterface) des „ Qt Widgets “-Designers abzurufen. Der Erweiterungsmanager steuert die Erstellung von Erweiterungen nach Bedarf, während der Formularfenster-Manager die im Arbeitsbereich des „ Qt Widgets “-Designers angezeigten Formularfenster verwaltet.
Sobald Sie über eine Schnittstelle zum Formularfenster-Manager des „ Qt Widgets “-Designers (QDesignerFormWindowManagerInterface) verfügen, haben Sie auch Zugriff auf alle Formularfenster, die derzeit im Arbeitsbereich des „ Qt Widgets “-Designers angezeigt werden: Die Klasse „ QDesignerFormWindowInterface “ ermöglicht es Ihnen, die Formularfenster abzufragen und zu bearbeiten, und bietet eine Schnittstelle zu den Cursorn der Formularfenster. „ QDesignerFormWindowCursorInterface “ ist eine Hilfsklasse, mit der Sie die Widget-Auswahl eines bestimmten Formularfensters abfragen und ändern sowie zusätzlich die Eigenschaften aller Widgets des Formulars anpassen können.
Erstellen von Benutzeroberflächen zur Laufzeit
Das Modul „ QtDesigner “ enthält die Klasse „ QFormBuilder “, die einen Mechanismus zum dynamischen Erstellen von Benutzeroberflächen zur Laufzeit bereitstellt, basierend auf UI-Dateien, die mit dem „ Qt Widgets Designer“ erstellt wurden. Diese Klasse wird typischerweise von benutzerdefinierten Komponenten und Anwendungen verwendet, die den „ Qt Widgets Designer“ einbetten. Eigenständige Anwendungen, die Benutzeroberflächen zur Laufzeit dynamisch generieren müssen, verwenden die Klasse „ QUiLoader “, die sich im Modul „ QtUiTools “ befindet.
Ein vollständiges Beispiel für die Verwendung von „ QUiLoader “ finden Sie im Beispiel „Calculator Builder“.
Siehe auch das Handbuch zum „Qt Widgets -Designer“ und Qt UI Tools.
© 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.