Erstellen und Verwenden von Komponenten für Qt Widgets Designer

Erstellen von benutzerdefinierten Widget-Plugins

Wenn Sie ein benutzerdefiniertes Widget-Plugin für Qt Widgets Designer implementieren, müssen Sie die Unterklasse QDesignerCustomWidgetInterface verwenden, um Ihr benutzerdefiniertes Widget für Qt Widgets Designer bereitzustellen. Ein einzelnes benutzerdefiniertes Widget-Plugin wird als eine separate Bibliothek erstellt. Wenn Sie mehrere benutzerdefinierte Widget-Plugins in dieselbe Bibliothek aufnehmen möchten, müssen Sie zusätzlich die Unterklasse QDesignerCustomWidgetCollectionInterface verwenden.

Um Ihr benutzerdefiniertes Widget-Plugin mit dem erwarteten Verhalten und der erwarteten Funktionalität innerhalb des Arbeitsbereichs von Qt Widgets Designer auszustatten, können Sie die zugehörigen Erweiterungsklassen unterklassifizieren:

Die Klasse QDesignerContainerExtension ermöglicht das Hinzufügen von Seiten zu einem benutzerdefinierten Mehrseiten-Container. Mit der Klasse QDesignerTaskMenuExtension können Sie benutzerdefinierte Menüeinträge zum Aufgabenmenü von Qt Widgets Designer hinzufügen. Mit der Klasse QDesignerMemberSheetExtension können Sie die Mitgliedsfunktionen eines Widgets manipulieren, das bei der Konfiguration von Verbindungen im Qt Widgets Designer-Modus zur Bearbeitung von Signalen und Slots angezeigt wird. Und schließlich ermöglicht die Klasse QDesignerPropertySheetExtension die Bearbeitung der Eigenschaften eines Widgets, die im Eigenschaftseditor von Qt Widgets Designer angezeigt werden.

In Qt Widgets Designer werden die Erweiterungen erst erstellt, wenn sie benötigt werden. Aus diesem Grund müssen Sie bei der Implementierung von Erweiterungen auch eine Unterklasse QExtensionFactory erstellen, d.h. eine Klasse, die Instanzen Ihrer Erweiterungen erzeugen kann. Außerdem müssen Sie den Erweiterungsmanager von Qt Widgets Designer dazu bringen, Ihre Fabrik zu registrieren; der Erweiterungsmanager steuert die Erstellung von Erweiterungen, wenn sie benötigt werden, 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 Aufgabenmenü-Erweiterung oder Container-Erweiterung.

Abrufen des Zugriffs auf Qt Widgets Designer-Komponenten

Der Zweck der in diesem Abschnitt erwähnten Klassen besteht darin, den Zugriff auf die Komponenten, Manager und den Arbeitsbereich von Qt Widgets Designer zu ermöglichen, und 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 Widgetbox und einen Objektinspektor, die Sie in seinem Arbeitsbereich sehen können.

Qt Widgets Designer verfügt auch über ein Objekt, das hinter der Bühne arbeitet; es enthält die Logik, die alle Komponenten von Qt Widgets Designer in eine kohärente Anwendung integriert. Sie können auf dieses Objekt mit QDesignerFormEditorInterface zugreifen, um Schnittstellen zu den Komponenten von Qt Widgets Designer abzurufen:

Darüber hinaus können Sie QDesignerFormEditorInterface verwenden, um Schnittstellen zu Qt Widgets Designers Erweiterungsmanager (QExtensionManager) und Formularfenster-Manager (QDesignerFormWindowManagerInterface) abzurufen. Der Erweiterungsmanager steuert die Konstruktion von Erweiterungen, wenn sie benötigt werden, während der Formularfenster-Manager die Formularfenster steuert, die im Arbeitsbereich von Qt Widgets Designer erscheinen.

Sobald Sie über eine Schnittstelle zum Formularfenster-Manager von Qt Widgets Designer (QDesignerFormWindowManagerInterface) verfügen, haben Sie auch Zugriff auf alle Formularfenster, die derzeit im Arbeitsbereich von Qt Widgets Designer angezeigt werden: Die Klasse QDesignerFormWindowInterface ermöglicht es Ihnen, die Formularfenster abzufragen und zu manipulieren, und sie bietet eine Schnittstelle zu den Cursorn der Formularfenster. QDesignerFormWindowCursorInterface ist eine Komfortklasse, mit der Sie die Widget-Auswahl eines bestimmten Formularfensters abfragen und ändern können und darüber hinaus die Eigenschaften aller Widgets des Formulars ändern können.

Erstellen von Benutzeroberflächen zur Laufzeit

Das Modul QtDesigner enthält die Klasse QFormBuilder, die einen Mechanismus zur dynamischen Erstellung von Benutzeroberflächen zur Laufzeit auf der Grundlage von mit Qt Widgets Designer erstellten UI-Dateien bietet. Diese Klasse wird normalerweise von benutzerdefinierten Komponenten und Anwendungen verwendet, die Qt Widgets Designer einbetten. Eigenständige Anwendungen, die zur Laufzeit dynamisch Benutzeroberflächen erstellen 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 Calculator Builder Beispiel.

Siehe auch Qt Widgets Designer Manual und Qt UI Tools.

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