# &kde-frameworks;: KDesignerPlugin

`kgendesignerplugin`

1

`kgendesignerplugin`

Genereert widget-plug-ins voor &Qt; Designer.

    kgendesignerplugin OPTIES bestand

## Beschrijving

De aangepaste widget-plug-ins voor &Qt; Designer volgen gewoonlijk een standaard patroon en de door de plug-in geleverde klassen beiden meestal statische informatie, samen met de functie om een exemplaar te maken die normaal gewoon een eenvoudige aanroep van een constructor is. `kgendesignerplugin` stelt ontwikkelaars van bibliotheken die nieuwe widgets leveren om zo'n plug-in te maken zonder alle geassocieerde boilerplate-code te maken, door een eenvoudige ini-stijl beschrijvingsbestand te leveren.

`kgendesignerplugin` kiest zinvolle standaarden voor de meeste instellingen, dus is een minimale configuratie gewoonlijk nodig.

## Opties

`-o `bestand``

- De naam voor het gegenereerde C++ bestand. Indien niet gegeven zal `stdout` worden gebruikt.

`-n `plug-in-naam``

- Geboden voor compatibiliteit. De standaard waarde voor de PluginName-optie is in het invoerbestand.

`-g `groep``

- Geboden voor compatibiliteit. De standaard waarde voor de DefaultGroup-optie in het invoerbestand.

`--author`

- Auteurinformatie tonen.

`--license`

- Licentie-informatie tonen.

`-h, --help`

- Een korte helptekst tonen.

`-v , --version`

- Versie-informatie tonen

## Bestandsformaat

Het invoerbestand is een configuratiebestand in ini-stijl (meer specifiek is het in het formaat ondersteund door het framework van KConfig) dat een set widgets beschrijft. Het bevat een sectie `[Global]`, die algemene informatie over de plug-in levert en een sectie voor elk widget dat ingevoegd zou moeten worden in de plug-in.

De sectie `[Global]` kan de volgende items bevatten:

`DefaultGroup`

- De standaard waarde voor het item `Group` in de secties klasse is standaard: "`Custom`", tenzij de optie `-g` is gegeven.

`Includes`

- Een (kommagescheiden) lijst van vereiste includes (standaard: leeg). Merk op dat de header-bestanden voor de widgets later gespecificeerd in het bestand hier niet in de lijst moet staan; in plaats daarvan is dit voor speciale headers voor eigen gebruik van de plug-in, zoals die voor klassen die previews leveren.

`PluginName`

- De naam van de hoofd C++ klasse in de plug-in (standaard: "`WidgetsPlugin`", tenzij de optie `-n` is gegeven).

Elk klasse moet zijn eigen sectie `[`ClassName`]` hebben, die de volgende items ingevoegd kan hebben:

`CodeTemplate`

- De waarde teruggegeven door de functie `codeTemplate()` van de plug-in, die gemarkeerd is voor "toekomstig gebruik" door &Qt; Designer (standaard: leeg).

`ConstructorArgs`

- De argumenten om door te geven aan de constructor van de klasse gegeven door `ImplClass`; deze moeten omgeven worden door ronde haakjes (standaard: "`(parent)`"). De enige gegarandeerde variabele die beschikbaar is is `parent`, wat de ouder is van `QWidget` doorgegeven door &Qt; Designer.

  Dit item wordt genegeerd als `CreateWidget` is ingesteld.

`CreateWidget`

- De code nodig om een exemplaar van het widget te maken (standaard: gebruikt `new` om een exemplaar van de klasse gegeven door het item `ImplClass` te maken, waarbij de argumenten gespecificeerd door `ConstructorArgs`) worden doorgegeven. Zie de notities voor `ImplClass` en `ConstructorArgs`.

`DomXML`

- Een &XML; UI beschrijving van het widget (standaard: de standaard geleverd door de plug-in-headers van &Qt; Designer).

`Group`

- De groep waaronder het widget wordt getoond in &Qt; Designer (standaard: de waarde van het item `DefaultGroup` in de sectie `[Global]`).

`Pictogramnaam`

- De naam van het afbeeldingsbestand of standaard pictogramnaam voor gebruik als het pictogram voor dit widget in de lijst met &Qt; Designer widgets (standaard: een PNG-bestandsnaam met de sectienaam, met elke dubbele dubbelpunt verwijdert, in de map "pics" van een bij compileren ingesloten broncodebestand; bijvoorbeeld, `:/pics/Foo.png` in de sectie `[Foo]` of `:/pics/FooBar.png` in de sectie `[Foo::Bar]`).

`ImplClass`

- De klasse die gebruikt zou moeten worden om een exemplaar van het widget te maken voor gebruik van &Qt; Designer (standaard: de sectienaam). Merk op dat dit niet echt de klasse hoeft te zijn die zou worden genaakt voor een eindtoepassing: die bepaald wordt door de `DomXML`.

  Dit item wordt genegeerd als `CreateWidget` is ingesteld.

`IncludeFile`

- De header die ingesloten moet worden om dit widget te gebruiken (standaard: de versie in kleine letters van de sectienaam, met elke dubbelpunt verwijdert en ".h" achtergevoegt; bijvoorbeeld, `foo.h` in de sectie `[Foo]` of `foobar.h` in de sectie `[Foo::Bar]`).

`IsContainer`

- Of dit widget andere widgets kan bevatten (standaard: `false`).

`Tekstballon`

- De te tonen tekstballon bij zweven boven het widget in de lijst met widgets van &Qt; Designer (standaard: de sectienaam, met " Widget" achtergevoegd; bijvoorbeeld, `Foo Widget` in de sectie `[Foo]`).

`WatisDit`

- De WatisDit-tekst verbonden aan het widget in &Qt; Designer (standaard: de sectienaam, met " Widget" achtergevoegd; bijvoorbeeld, `Foo Widget` in de sectie `[Foo]`).

## Voorbeelden

Het eenvoudigste beschrijvingsbestand kan er zo uit zien:

    [Foo]
    ToolTip=Toont foo's
    [Bar]
    ToolTip=Balk-editor

Merk op dat elke klasse minstens één set toetsen moet hebben (`ToolTip` is in dit voorbeeld gebruikt), anders zal het worden genegeerd.

Gewoonlijk zult u de voor de gebruiker zichtbare tekst willen wijzigen, dus de items `ToolTip`, `WhatsThis` en `Group`. Bovendien kan het instellen van de naam van de plug-in een goed idee zijn om mogelijke botsingen tussen symbolen te voorkomen en debuggers niet te verwarren (zowel de toepassing voor debuggen als de persoon die de debugging uitvoert):

    [Global]
    PluginName=FooWidgets
    DefaultGroup=Display

    [Foo]
    ToolTip=Displays bears
    WhatsThis=Een afbeeldingswidget dat dansende beren toont

    [Bar]
    ToolTip=Bar editor
    WhatsThis=Een editor-interface voor balken voor beren
    Group=Editing

Meer complexe bestanden kunnen noodzakelijk zijn als u klassen met naamruimten hebt of extra opties die het leveren van constructors nodig hebben, bijvoorbeeld:

    [Global]
    PluginName=FooWidgets
    DefaultGroup=Foo

    [Foo::Bar]
    ToolTip=Toon balken
    WhatsThis=Een widget die balken toont op een speciale manier
    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

Soms is, speciaal bij complexe widgets, een speciale "preview class" implementatie nodig bij gebruik in &Qt; Designer; dit kan een subklasse zijn van de echte widget die gewoon enige extra instellingen doet of het kan een compleet andere implementatie zijn.

    [Global]
    Includes=foopreviews.h

    [FancyWidget]
    ImplClass=FancyWidgetPreview

## Zie ook

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

- De documentatie van &Qt; Designer over het maken van plug-ins voor eigen widgets.

## Fouten/bugs

Gaarne bugvolger van &kde; gebruiken om bugrapporten in te dienen, stuur geen e-mail direct naar de auteurs.