KGENDESIGNERPLUGI(1) KDE Frameworks: KDesignerPlugi KGENDESIGNERPLUGI(1)

kgendesignerplugin - Generiert Bedienelement-Module (Widgets) für Qt(TM)-Designer

ÜBERSICHT

kgendesignerplugin [Optionen...] Datei

Die benutzerdefinierten Bedienelement-Module für Qt(TM)-Designer folgen normalerweise einem Standardmuster, und die vom Modul bereitgestellten Klassen bieten meist statische Informationen, zusammen mit einer Funktion zum Erstellen einer Instanz, die normalerweise nur ein einfacher Konstruktoraufruf ist. kgendesignerplugin erlaubt Entwicklern von Bibliotheken, die neue Bedienelemente bereitstellen, die Erstellung eines solchen Moduls ohne den gesamten zugehörigen Boilerplate-Code zu erstellen, indem eine einfache Beschreibungsdatei im Ini-Stil bereitgestellt wird.

kgendesignerplugin verwendet sinnvolle Voreinstellungen für die meisten Einstellungen, daher ist normalerweise nur eine minimale Konfiguration erforderlich.

-o datei

Der Name der generierten C++-Datei. Ist er nicht angegeben, wird stdout benutzt.

-n plugin-name

Nur zur Kompatibilität. Der Standardwert für die Option PluginName in der Eingabedatei.

-g group

Nur zur Kompatibilität. Der Standardwert für die Option DefaultGroup in der Eingabedatei.

--author

Zeigt Informationen über den Autor.

--license

Zeigt Lizenz-Informationen an.

-h, --help

Zeigt einen kurzen Hilfetext.

-v, --version

Zeigt Versionsinformationen an.

Die Eingabedatei ist eine Einrichtungsdatei im Ini-Stile im Format, das von der Bibliothek KConfig unterstützt wird, und beschreibt eine Gruppe von Widgets. Sie enthält einen Abschnitt [Global] mit allgemeinen Informationen über das Modul und einen Abschnitt für jedes Widget in diesem Modul.

Im Abschnitt [Global] kann es folgende Einträge geben:

DefaultGroup

Der Standardwert für den Eintrag Group in den Klassenabschnitten. Voreinstellung ist Custom, wenn nicht die Option -g angegeben ist.

Includes

Eine (durch Komma getrennte) Liste der erforderlichen Includes (Standard: leer). Beachten Sie, dass die Header-Dateien für die Bedienelemente, die später in der Datei angegeben werden, hier nicht aufgeführt werden sollten. Stattdessen ist dies für spezielle Header für die eigene Verwendung des Moduls gedacht, wie die für Klassen, die Vorschauen bereitstellen.

PluginName

Der Name der Haupt-C++-Klasse im Modul, Vorgabe WidgetsPlugin, wenn nicht die Option -n angeben ist.

Jede Klasse sollte einen eigenen Abschnitt [ClassName] haben, der folgende Einträge enthalten kann:

CodeTemplate

Der Rückgabewert der Funktion codeTemplate() des Moduls, der als „future use“ in Qt(TM)-Designer gekennzeichnet ist, Vorgabewert leer.

ConstructorArgs

Die Argumente, die an den Konstruktor der durch ImplClass angegebenen Klasse übergeben werden, müssen von Klammern umgeben sein (Standard: "(parent)"). Die einzige Variable, die garantiert verfügbar ist, ist parent, das ist der Elternteil QWidget, das von Qt(TM) Designer übergeben wird.

Dieser Eintrag wird ignoriert, wenn CreateWidget festgelegt ist.

CreateWidget

Der notwendige Code, um eine Instanz des Bedienelements zu erzeugen: Standard: verwendet new, um eine Instanz der durch den Eintrag ImplClass angegebenen Klasse zu erzeugen, die Klasse zu erzeugen, wobei die durch ConstructorArgs angegebenen Argumente übergeben werden. Siehe die Hinweise zu ImplClass und ConstructorArgs.

DomXML

Eine XML-UI-Beschreibung des Bedienelements. Standard ist die Einstellung aus den Headern der Qt(TM)-Designermodule.

Group

Die Gruppe unter der das Bedienelement im Qt(TM)-Designer angezeigt wird. Die Voreinstellung ist der Wert des Eintrags DefaultGroup im Abschnitt [Global].

IconName

Die Bilddatei oder der Name des Standardsymbols, das als Symbol für dieses Bedienelement in der Qt(TM) Designer-Liste verwendet werden soll. (Standard: eine PNG-Datei mit dem Namen des Abschnitts, wobei Doppelpunkte entfernt werden, im Verzeichnis "pics" einer kompilierten Ressourcendatei. Zum Beispiel :/pics/Foo.png im Abschnitt [Foo] oder :/pics/FooBar.png im Abschnitt [Foo::Bar]).

ImplClass

Die Klasse, die verwendet werden soll, um eine Instanz des Bedienelements für die Verwendung von Qt(TM)-Designer (Standard: der Name des Abschnitts). Beachten Sie, dass dies nicht tatsächlich die Klasse sein muss, die für eine Endanwendung erzeugt werden würde. Das wird durch das DomXML bestimmt.

Dieser Eintrag wird ignoriert, wenn CreateWidget festgelegt ist.

IncludeFile

Die Header, der zur Verwendung dieses Bedienelements enthalten sein müssen. Standard: der kleingeschriebene Abschnittsnamen, wobei alle Doppelpunkte entfernt und ".h" angehängt werden. Zum Beispiel foo.h im Abschnitt [Foo] oder foobar.h im Abschnitt [Foo::Bar].

IsContainer

Ob diese Bedienelement andere Bedienelement enthalten kann. Vorgabe ist false.

ToolTip

Die Kurzinfo, die angezeigt wird, wenn der Mauszeiger über das Bedienelement in der Liste von Qt(TM)-Designer geführt wird. Standard: der Name des Abschnitts, mit angehängtem " Widget". Zum Beispiel: Foo Widget im Abschnitt [Foo]).

WhatsThis

Der „Was ist das“-Text zum zugehörigen Bedienelement in der Liste vom Qt(TM)--Designer. Standard: der Name des Abschnitts, mit angehängtem " Widget". Zum Beispiel: Foo Widget im Abschnitt [Foo]).

Die einfachste Beschreibungsdatei kann so aussehen:

[Foo]
ToolTip=Displays foos
[Bar]
ToolTip=Bar editor

Beachten Sie, dass jede Klasse mindestens einen Schlüsselwert festlegen muss (ToolTip wurde zum Beispiel hier verwendet), ansonsten wird sie ignoriert.

Normalerweise wollen Sie zumindest den für den Benutzer sichtbaren Text ändern, also die Einträge ToolTip, WhatsThis und Group. Zusätzlich kann das Setzen des Modul-Namens eine gute Idee sein, um mögliche Symbolkonflikte zu vermeiden und Debugger nicht zu verwirren, sowohl die Anwendung als auch die Person:

[Global]
PluginName=FooWidgets
DefaultGroup=Display
[Foo]
ToolTip=Displays bears
WhatsThis=An image widget that displays dancing bears
[Bar]
ToolTip=Bar editor
WhatsThis=An editor interface for bars for bears
Group=Editing

Komplexere Dateien können nötig sein, wenn Sie Klassen mit Namensraum oder zusätzliche Einstellungen, die vom Konstruktor unterstützt werden, wie zum Beispiel:

[Global]
PluginName=FooWidgets
DefaultGroup=Foo
[Foo::Bar]
ToolTip=Displays bars
WhatsThis=A widget that displays bars in a particular way
IncludeFile=foo/bar.h
IconName=:/previews/bar.png
[Foo::Baz]
IncludeFile=foo/baz.h
ConstructorArgs=(Foo::Baz::SomeOption, parent)
Group=Foo (Special)
IsContainer=true
IconName=:/previews/baz.png

Manchmal benötigen besonders komplexe Bedienelemente eine spezielle "Vorschauklassen"-Implementierung für die Verwendung in Qt(TM)-Designer;. Dies kann eine Unterklasse des eigentlichen Bedienelements sein, die nur einige zusätzliche Einstellungen vornimmt, oder es kann eine völlig andere Implementierung sein.

[Global]
Includes=foopreviews.h
[FancyWidget]
ImplClass=FancyWidgetPreview

https://doc.qt.io/qt-5/designer-creating-custom-widgets.html

Die Dokumentation zu Qt(TM)-Designer für die Erstellung von Modulen für benutzerdefinierte Bedienelemente.

Bitte verwenden Sie bugs.kde.org[1] für Fehlerberichte, schicken Sie keine E-Mails direkt an die Autoren.

Richard Johnson <rjohnson@kde.org>

Schrieb die ursprüngliche Dokumentation.

Alex Merry <alexmerry@kde.org>

Aktualisierte die Dokumentation für KDE Frameworks 5.

1.
bugs.kde.org
2014-05-28 KDE Frameworks Frameworks 5.0