# Frameworks del &kde;: KDesignerPlugin

`kgendesignerplugin`

1

`kgendesignerplugin`

Genera connectors d'estri pel &Qt; Designer.

    kgendesignerplugin OPCIONS fitxer

## Descripció

Els connectors d'estri personalitzats pel &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 estris 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 per omissió per a la majoria dels ajustaments, de manera que sol ser necessària una configuració mínima.

## Opcions

`-o `fitxer``

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

`-n `nom_del_connector``

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

`-g `grup``

- Es proporciona per compatibilitat. El valor per omissió 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 d'estris. Conté una secció `[Global]`, la qual proporciona informació general sobre el connector, i una secció per a cada estri que s'ha d'incloure en el connector.

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

`DefaultGroup`

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

`Includes`

- Una llista (separada per comes) dels «includes» requerits (per omissió: buida). Tingueu en compte que els fitxers de capçalera pels estris 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 (per omissió: «`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 (per omissió: 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 (per omissió: «`(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 crear una instància de l'estri (per omissió: utilitza `new` per 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 de l'estri (per omissió: el valor per omissió proporcionat per les capçaleres al connector del &Qt; Designer).

`Group`

- El grup per mostrar l'estri sota el &Qt; Designer (per omissió: 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 aquest estri en la llista d'estris del &Qt; Designer (per omissió: 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 crear una instància de l'estri per a l'ús del &Qt; Designer (per omissió: el nom de la secció). Tingueu 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 utilitzar-la amb aquest estri (per omissió: 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 estri pot contenir altres estris (per omissió: `false`).

`ToolTip`

- El consell d'eina que es mostrarà quan es passi per sobre de l'estri a la llista d'estris del &Qt; Designer (per omissió: 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 l'estri al &Qt; Designer (per omissió: el nom de la secció, amb «Widget» annexat. Per exemple, `Foo Widget` a la secció `[Foo]`).

## Exemples

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

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

Tingueu 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 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 estris 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 de l'estri real, la qual només faria algun ajustament 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 estris 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.