# &kde-frameworks;: KDesignerPlugin

`kgendesignerplugin`

1

`kgendesignerplugin`

Genera connectors de giny per al &Qt; Designer.

    kgendesignerplugin OPCIONS fitxer

## Descripció

Els connectors de giny personalitzats per al &Qt; Designer solen seguir un patró estàndard, i les classes proporcionades pel connector proporcionen principalment informació estàtica, juntament amb la funció de crear una instància que normalment només és una crida de constructor simple. `kgendesignerplugin` permet als desenvolupadors de biblioteques que proporcionen ginys nous, el fet de crear un connector d'aquest tipus sense necessitat de crear tot el codi repetitiu associat, proporcionant un simple fitxer de descripció d'estil ini.

`kgendesignerplugin` tria els valors predeterminats per a la majoria de les opcions de configuració, de manera que sol ser necessària una configuració mínima.

## Opcions

`-o `fitxer``

- El nom per al fitxer C++ generat. Si no es dona, s'utilitza la sortida estàndard (`stdout`).

`-n `nom_del_connector``

- Es proporciona per compatibilitat. El valor predeterminat per a l'opció PluginName al fitxer d'entrada.

`-g `grup``

- Es proporciona per compatibilitat. El valor predeterminat per a l'opció DefaultGroup al fitxer d'entrada.

`--author`

- Mostra informació sobre l'autor.

`--license`

- Mostra informació sobre la llicència.

`-h, --help`

- Mostra un text breu d'ajuda.

`-v, --version`

- Mostra informació sobre la versió.

## Format del fitxer

El fitxer d'entrada és un fitxer de configuració d'estil ini (en concret, és el format implementat per l'entorn de treball KConfig), el qual descriu un conjunt de ginys. Conté una secció `[Global]`, la qual proporciona informació general sobre el connector, i una secció per a cada giny que s'ha d'incloure en el connector.

La secció `[Global]` conté les següents entrades:

`DefaultGroup`

- El valor predeterminat per a l'entrada `Group` en les seccions de classe (predeterminat: «`Custom`», a menys que s'indiqui l'opció `-g`).

`Includes`

- Una llista (separada per comes) dels «includes» requerits (predeterminat: buida). Cal tenir en compte que els fitxers de capçalera per als ginys especificats més endavant al fitxer no s'han de llistar aquí. En canvi, això és per a les capçaleres especials per a l'ús propi del connector, com les de les classes que proporcionen vistes prèvies.

`PluginName`

- El nom de la classe de C++ principal en el connector (predeterminat: «`WidgetsPlugin`», a menys que s'indiqui l'opció `-n`).

Cada classe ha de tenir la seva pròpia secció `[`ClassName`]`, la qual pot incloure les següents entrades:

`CodeTemplate`

- El valor retornat per la funció `codeTemplate()` del connector, la qual és marcada per a «ús futur» pel &Qt; Designer (predeterminat: buida).

`ConstructorArgs`

- Els arguments que s'ha de passar al constructor de la classe indicada per `ImplClass`. Aquests han d'estar envoltats entre parèntesis (predeterminat: «`(parent)`»). L'única variable garantida que estarà disponible és la `parent`, la qual és la pare de `QWidget` passada pel &Qt; Designer.

  Aquesta entrada serà ignorada si s'estableix `CreateWidget`.

`CreateWidget`

- El codi necessari per a crear una instància del giny (predeterminat: utilitza `new` per a crear una instància de la classe indicada per l'entrada `ImplClass`, passant els arguments especificats per `ConstructorArgs`). Vegeu les notes per a `ImplClass` i `ConstructorArgs`.

`DomXML`

- Una descripció IU en &XML; del giny (predeterminat: el valor predeterminat proporcionat per les capçaleres al connector del &Qt; Designer).

`Group`

- El grup per a mostrar el giny sota el &Qt; Designer (predeterminat: el valor de l'entrada `DefaultGroup` a la secció `[Global]`).

`IconName`

- El fitxer d'imatge o nom d'icona estàndard que s'utilitza com a icona per a aquest giny en la llista de ginys del &Qt; Designer (predeterminat: un fitxer PNG anomenat amb el nom de la secció, eliminant qualsevol caràcter de dos punts, al directori «pics» dins d'un fitxer de recursos compilat. Per exemple, `:/pics/Foo.png` a la secció `[Foo]`, o `:/pics/FooBar.png` a la secció `[Foo::Bar]`).

`ImplClass`

- La classe que s'ha d'utilitzar per a crear una instància del giny per a l'ús del &Qt; Designer (predeterminat: el nom de la secció). Cal tenir en compte que aquest en realitat no ha de per què ser la classe que es crearia per a una aplicació final: està determinat per la `DomXML`.

  Aquesta entrada serà ignorada si s'estableix `CreateWidget`.

`IncludeFile`

- La capçalera que s'ha d'incloure per a utilitzar-la amb aquest giny (predeterminat: la versió en minúscules del nom de la secció, eliminant qualsevol caràcter de dos punts i annexant «*.h». Per exemple, `foo.h` a la secció `[Foo]`, o `foobar.h` a la secció `[Foo::Bar]`).

`IsContainer`

- Si aquest giny pot contenir altres ginys (predeterminat: `false`).

`ToolTip`

- El consell d'eina que es mostrarà quan es passi per sobre del giny a la llista de ginys del &Qt; Designer (predeterminat: el nom de la secció, amb «Widget» annexat. Per exemple, `Foo Widget` a la secció `[Foo]`).

`WhatsThis`

- El text de «Què és això» associat amb el giny al &Qt; Designer (predeterminat: el nom de la secció, amb «Widget» annexat. Per exemple, `Foo Widget` a la secció `[Foo]`).

## Exemples

El fitxer de descripció més senzill podria semblar-se a això:

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

Cal tenir en compte que cada classe almenys haurà de tenir un conjunt de claus (en aquest exemple s'utilitza `ToolTip`), en cas contrari s'ignorarà.

Usualment, voldreu canviar el text a almenys visible per l'usuari, el qual vol dir les entrades `ToolTip`, `WhatsThis` i `Group`. A més, establir el nom del connector pot ser una bona idea per a evitar possibles col·lisions de símbol i no confondre als depuradors (tant l'aplicació del depurador com la persona que realitza la depuració):

    [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

Poden ser necessaris fitxers més complexos si teniu classes d'espais de nom o opcions addicionals que necessiten ser subministrades als constructors, per exemple:

    [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

De vegades els ginys especialment complexos poden necessitar una implementació «classe de vista prèvia» especial per al seu ús en el &Qt; Designer. Aquesta podria ser una subclasse del giny real, la qual només faria alguna configuració addicional, o podria ser una implementació completament diferent.

    [Global]
    Includes=foopreviews.h

    [FancyWidget]
    ImplClass=FancyWidgetPreview

## Vegeu també

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

- La documentació del &Qt; Designer sobre la creació de connectors per a ginys personalitzats.

## Errors

Si us plau, empreu el Seguidor d'errors del &kde; (escriviu-hi en anglès) per a informar-ne, no envieu cap correu directament als autors.