# &kde-frameworks;: KDesignerPlugin

`kgendesignerplugin`

1

`kgendesignerplugin`

Genera connectors de giny per a &Qt; Designer.

    kgendesignerplugin OPCIONS fitxer

## Descripció

Els connectors de giny personalitzats per a &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 senzill. `kgendesignerplugin` permet als desenvolupadors de biblioteques que proporcionen ginys nous, el fet de crear un connector d'este tipus sense necessitat de crear tot el codi repetitiu associat, proporcionant un senzill 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 l'eixida 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'autoria.

`--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'indique l'opció `-g`).

`Includes`

- Una llista (separada per comes) dels «includes» requerits (predeterminat: buida). Cal tindre en compte que els fitxers de capçalera per als ginys especificats més avant al fitxer no s'han de llistar ací. En canvi, açò é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'indique l'opció `-n`).

Cada classe ha de tindre la seua 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» per &Qt; Designer (predeterminat: buida).

`ConstructorArgs`

- Els arguments que s'ha de passar al constructor de la classe indicada per `ImplClass`. Estos 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 per &Qt; Designer.

  Esta entrada serà ignorada si s'establix `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 de &Qt; Designer).

`Group`

- El grup per a mostrar el giny davall &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 este giny en la llista de ginys de &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 de &Qt; Designer (predeterminat: el nom de la secció). Cal tindre en compte que este en realitat no ha de per què ser la classe que es crearia per a una aplicació final: està determinat per la `DomXML`.

  Esta entrada serà ignorada si s'establix `CreateWidget`.

`IncludeFile`

- La capçalera que s'ha d'incloure per a utilitzar-la amb este 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` en la secció `[Foo]`, o `foobar.h` en la secció `[Foo::Bar]`).

`IsContainer`

- Si este giny pot contindre altres ginys (predeterminat: `false`).

`ToolTip`

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

`WhatsThis`

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

## Exemples

El fitxer de descripció més senzill podria paréixer-se a açò:

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

Cal tindre en compte que cada classe almenys haurà de tindre un conjunt de claus (en este 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 &Qt; Designer. Esta 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ó de &Qt; Designer sobre la creació de connectors per a ginys personalitzats.

## Errors

Utilitzeu el Seguidor d'errors de &kde; (escriviu-hi en anglés) per a informar-ne, no envieu cap correu directament als autors.