# &kde; ramverk: KDesignerPlugin

`kgendesignerplugin`

1

`kgendesignerplugin`

Skapar grafiska instickskomponenter för &Qt; Designer.

    kgendesignerplugin VÄLJARE fil

## Beskrivning

De anpassade insticksmodulerna för &Qt; Designer följer vanligtvis ett standardmönster, och klasserna som tillhandahålls av insticksmodulen tillhandahåller statisk information, tillsammans med en funktion för att skapa en instans som normalt bara är ett enkelt konstruktoranrop. `kgendesignerplugin` låter utvecklare av bibliotek som tillhandahåller nya grafiska komponenter skapa en sådan insticksmodul utan att skapa all tillhörande standardkod, genom att tillhandahålla en enkel beskrivningsfil med ini-stil.

`kgendesignerplugin` väljer rimliga standardvärden för de flesta inställningarna, så minimal inställning är oftast nödvändig.

## Väljare

`-o `fil``

- Namnet på den skapade C++ filen. Om inte angiven, används `standardutmatningen`.

`-n `insticksnamn``

- Tillhandahålls för kompatibilitet. Standardvärdet på alternativet PluginName i indatafilen.

`-g `grupp``

- Tillhandahålls för kompatibilitet. Standardvärdet på alternativet DefaultGroup i indatafilen.

`--author`

- Visa information om upphovsman.

`--license`

- Visa licensinformation.

`-h, --help`

- Visa en kortfattad hjälptext.

`-v , --version`

- Visa versionsinformation.

## Filformat

Indatafilen är en inställningsfil med ini-stil (mer specifikt använder den formatet som stöds av ramverket KConfig) som beskriver en uppsättning grafiska komponenter. Den innehåller sektionen `[Global]`, som tillhandahåller allmän information om insticksmodulen, och en sektion för varje grafisk komponent som ska ingå i insticksmodulen.

Sektionen `[Global]` kan ha följande poster:

`DefaultGroup`

- Standardvärdet för posten `Group` i klassektionen (standardvärde: "`Custom`", om inte väljaren `-g` anges).

`Includes`

- En lista med deklarationsfiler som krävs (åtskilda med kommatecken, normalt tom). Observera att deklarationsfilerna för de grafiska komponenterna som specificeras senare i filen inte ska listas här, istället är detta till för särskilda deklarationsfiler för insticksmodulens egen användning, såsom de för klasser som tillhandahåller förhandsgranskningar.

`PluginName`

- Namnet på den huvudsakliga C++ klassen i insticksmodulen (standardvärde: "`WidgetsPlugin`", om inte väljaren `-n` anges).

Varje klass ska ha sin egen sektion `[`klassnamn`]`, som kan innehålla följande poster:

`CodeTemplate`

- Värdet som returneras av insticksmodulens funktion `codeTemplate()`, som är markerad för "framtida användning" av &Qt; Designer (standardvärde: tom).

`ConstructorArgs`

- Argumentet att skicka till klassens konstruktor given av `ImplClass`. De måste vara omgivna av parenteser(standardvärde: "`(parent)`"). Den enda variabel som garanterat är tillgänglig är `parent`, som är den överliggande `QWidget`-klassen som skickas med av &Qt; Designer.

  Den här posten ignoreras om `CreateWidget` är angivet.

`CreateWidget`

- Koden som är nödvändig för att skapa en instans av den grafiska komponenten (standardvärde: använder `new` för att skapa en instans av klassen given av posten `ImplClass`, och skickar med argumenten som anges av `ConstructorArgs`). Se anmärkningarna för `ImplClass` och `ConstructorArgs`.

`DomXML`

- En &XML; UI-beskrivning av den grafiska komponenten (standardvärde: de förvalda värden som tillhandahålls av &Qt; Designer deklarationsfiler för insticksmoduler).

`Group`

- Grupp att visa den grafiska komponenten under i &Qt; Designer (standardvärde: värdet på posten `DefaultGroup` i sektionen `[Global]`).

`IconName`

- Bildfilen eller standardikonnamnet att använda som ikon för den här grafiska komponenten i &Qt; Designers komponentlista (standardvärde: en PNG-fil namngiven med sektionsnamnet, med eventuella dubbla kolon borttagna, i katalogen "pics" i en inkompilerad resursfil, till exempel `:/pics/Sektion.png` för sektionen `[Sektion]`, eller `:/pics/SektionKlass.png` för sektionen `[Sektion::Klass]`).

`ImplClass`

- Klassen som ska användas för att skapa en instans av den grafiska komponenten för användning av &Qt; Designer (standardvärde: sektionsnamnet). Observera att det inte behöver vara klassen som ska skapas för en slutapplikation: Den bestäms av `DomXML`.

  Den här posten ignoreras om `CreateWidget` är angivet.

`IncludeFile`

- Deklarationsfilen som måste inkluderas för att använda den här grafiska komponenten (standardvärde: sektionsnamnet med små bokstäver, med eventuella kolon borttagna och ".h" tillagt sist, exempelvis `sektion.h` för sektionen `[Sektion]` eller `sektionklass` för sektionen `[Sektion::Klass]`).

`IsContainer`

- Om den här grafiska komponenten kan innehålla andra grafiska komponenter (standardvärde `false`).

`ToolTip`

- Verktygstipset att visa när musen hålls över den grafiska komponenten i &Qt; Designers komponentlista (standardvärde: sektionsnamnet med "Widget" tillagt sist, exempelvis `Sektion Widget` i sektionen `[Sektion]`).

`WhatsThis`

- Vad är det här-texten som hör ihop med den grafiska komponenten i &Qt; Designer (standardvärde: sektionsnamnet med "Widget" tillagt sist, exempelvis `Sektion Widget` för sektionen `[Sektion]`).

## Exempel

Den enklast möjliga beskrivningsfilen kan se ut så här

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

Observera att varje klass måste ha minst en nyckeluppsättning (`ToolTip` användes i det här exemplet), annars ignoreras den.

Oftast vill man åtminstone ändra den användarsynliga texten, vilket betyder posterna `ToolTip` `WhatsThis` och `Group`. Dessutom kan det vara en bra idé att ange insticksmodulens namn för att förhindra möjliga symbolkollisioner och inte göra avlusare förvirrade (både avlusningsprogrammet och personen som avlusar).

    [Global]
    PluginName=MinaKomponenter
    DefaultGroup=Display

    [X]
    ToolTip=Visar björnar
    WhatsThis=En bildkomponent som visar dansande björnar

    [Bar]
    ToolTip=Bar-editor
    WhatsThis=En editorgränssnitt för björnbarer
    Group=Editing

Mer komplexa filer kan behövas om man exempelvis har klasser med namnrymder eller extra alternativ som måste skickas till konstruktorer.

    [Global]
    PluginName=MinaKomponenter
    DefaultGroup=Grupp

    [Grupp::Bar]
    ToolTip=Visar barer
    WhatsThis=En grafisk komponent som visar barer på ett visst sätt
    IncludeFile=grupp/bar.h
    IconName=:/förhandsgranskning/bar.png

    [Grupp::Baz]
    IncludeFile=grupp/baz.h
    ConstructorArgs=(Grupp::Baz::Ett_alternativ, parent)
    Group=Grupp (Special)
    IsContainer=true
    IconName=:/förhandsgranskning/baz.png

Ibland kan särskilt komplexa grafiska komponenter kräva en särskild implementering av en "förhandsgranskningsklass" för användning i &Qt; Designer. Det kan vara en delklass av den verkliga grafiska komponenten som bara gör en del extra inställningar, eller en helt annorlunda implementering.

    [Global]
    Includes=gruppförhandsgranskningar.h

    [Snygg_komponent]
    ImplClass=Snygg_komponent_förhandsgranskning

## Se också

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

- &Qt; Designer-dokumentationen om hur man skapar insticksmoduler för egna grafiska komponenter.

## Fel

Använd &kde;:s felspårningsverktyg för att rapportera fel, skicka inte e-post direkt till upphovsmännen.