Scroll to navigation

KGENDESIGNERPLUGI(1) KDE Frameworks: KDesignerPlugi KGENDESIGNERPLUGI(1)

NOME

kgendesignerplugin - Genera estensioni di oggetti per Qt(TM) Designer.

SINOSSI

kgendesignerplugin [OPZIONI...] file

DESCRIZIONE

Le estensioni per oggetti personalizzati di Qt(TM) Designer seguono solitamente uno schema predefinito, e le classi fornite dall'estensione forniscono per lo più informazioni statiche, oltre alla funzione per creare un'istanza, che è normalmente una semplice chiamata a un costruttore. kgendesignerplugin permette agli sviluppatori di librerie di fornire nuovi oggetti per creare una tale estensione senza creare tutto il codice di routine, ma fornendo invece un semplice file descrittivo in stile ini.

kgendesignerplugin sceglie valori predefiniti ragionevoli per la maggior parte delle impostazioni, per cui normalmente è necessaria solo una configurazione minimale.

OPZIONI

-o file

Il nome per il file C++ generato. Se non viene fornito, verrà usato stdout.

-n nome-estensione

Disponibile per compatibilità. Il valore predefinito per l'opzione PluginName nel file di input.

-g gruppo

Disponibile per compatibilità. Il valore predefinito per l'opzione DefaultGroup nel file di input.

--author

Mostra le informazioni sull'autore.

--license

Mostra le informazioni sulla licenza.

-h, --help

Mostra un breve testo di aiuto.

-v , --version

Mostra le informazioni sulla versione.

FORMATO DEI FILE

Il file di input è un file di configurazione di tipo INI (in particolare, è nel formato supportato dal framework KConfig) che descrive un insieme di oggetti. Contiene una sezione [Global], che fornisce informazioni generali sull'estensione, ed una sezione per ogni oggetto che deve essere incluso nell'estensione.

La sezione [Global] può avere le seguenti voci:

DefaultGroup

Il valore predefinito per la voce Group nelle sezioni delle classi (valore predefinito: "Custom", a meno che l'opzione -g non sia stata fornita).

Includes

Un elenco (separato da virgole) di file da includere richiesti (valore predefinito: vuoto). Nota come i file di intestazione per gli oggetti specificati successivamente nel file non vanno elencati qui; questo elenco è per le intestazioni speciali usate internamente dall'estensione, come quelli per le classi che forniscono le anteprime.

PluginName

Il nome della classe C++ principale nell'estensione (valore predefinito: "WidgetsPlugin", a meno che l'opzione -n non sia stata specificata).

Ogni classe dovrebbe avere la propria sezione [ClassName], che può includere le seguenti voci:

CodeTemplate

Il valore restituito dalla funzione codeTemplate() dell'estensione, che è segnata per "uso futuro" da Qt(TM) Designer (predefinito: vuoto).

ConstructorArgs

Gli argomenti da passare al costruttore della classe fornito da ImplClass: questi devono essere racchiusi tra parentesi (valore predefinito: (parent)). L'unica variabile di cui è garantita la presenza è parent, che è l'oggetto QWidget genitore passato da Qt(TM) Designer.

Questa voce è ignorata se CreateWidget è impostato.

CreateWidget

Il codice necessario per creare un'istanza dell'oggetto (comportamento predefinito: usa new per creare un'istanza della classe specificata dalla voce ImplClass, passando gli argomenti specificati da ConstructorArgs). Consultare le note per ImplClass e ConstructorArgs.

DomXML

Una descrizione XML UI dell'oggetto (valore predefinito: quanto fornito dalle intestazioni dell'estensione per Qt(TM) Designer).

Group

Il gruppo in cui mostrare l'oggetto in Qt(TM) Designer (valore predefinito: il valore della voce DefaultGroup nella sezione [Global]).

IconName

Il file di immagine o il nome standard di icona da usare come icona per questo oggetto nell'elenco degli oggetti di Qt(TM) Designer (valore predefinito: un file PNG chiamato come il nome della sezione ma senza doppi due punti, nella directory «pics» di un file di risorse integrato; ad esempio, :/pics/Foo.png nella sezione [Foo], o :/pics/FooBar.png nella sezione [Foo::Bar]).

ImplClass

La classe che dovrebbe essere usata per creare un'istanza dell'oggetto per l'uso in Qt(TM) Designer (valore predefinito: il nome della sezione). Si noti come questa non deve essere necessariamente la classe che verrebbe creata per l'applicazione finale: questo viene stabilito dal valore di DomXML.

Questa voce è ignorata se CreateWidget è impostato.

IncludeFile

L'intestazione che è necessario includere per usare questo oggetto (valore predefinito: la versione in minuscolo del nome della sezione, con i due punti rimossi e «.h» aggiunto alla fine; ad esempio, foo.h nella sezione [Foo], o foobar.h nella sezione [Foo::Bar]).

IsContainer

Se questo oggetto possa contenerne altri (valore predefinito: false).

ToolTip

Il suggerimento da mostrare quando il mouse passa sull'oggetto nell'elenco degli oggetti di Qt(TM) Designer (valore predefinito: il nome della sezione, con « Widget» aggiunto alla fine; ad esempio Foo Widget nella sezione [Foo]).

WhatsThis

Il testo «Che cos'è» associato all'oggetto in Qt(TM) Designer (valore predefinito: il nome della sezione, con « Widget» aggiunto alla fine; ad esempio, Foo Widget nella sezione [Foo]).

ESEMPI

Il file di descrizione più semplice potrebbe somigliare a:

[Foo]
ToolTip=Mostra foo
[Bar]
ToolTip=Editor di qualcosa

Si noti come ogni classe debba avere almeno una chiave impostata (in questo esempio è stata usata ToolTip), altrimenti la classe verrà ignorata.

Normalmente vorrai cambiare almeno il testo visibile all'utente, che vuol dire le voci ToolTip, WhatsThis e Group. Inoltre, impostare il nome dell'estensione può essere una buona idea per prevenire possibili conflitti di simboli e non confondere i debugger (sia l'applicazione debugger che la persona che effettua il debug):

[Global]
PluginName=FooWidgets
DefaultGroup=Display
[Foo]
ToolTip=Mostra orsi
WhatsThis=Un'oggetto immagine che mostra orsi danzanti
[Bar]
ToolTip=Editor qualcosa
WhatsThis=Un'interfaccia editor per qualcosa per orsi
Group=Editing

Dei file più complessi potrebbero essere necessari se ci fossero classi con namespace oppure opzioni aggiuntive che debbano essere fornite ai costruttori, ad esempio:

[Global]
PluginName=FooWidgets
DefaultGroup=Foo
[Foo::Bar]
ToolTip=Mostra qualcosa
WhatsThis=Un oggetto che mostra qualcosa in modo peculiare
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

A volte degli oggetti particolarmente complessi potrebbero aver bisogno di un'implementazione di una speciale «classe di anteprima» per l'uso in Qt(TM) Designer; questa potrebbe essere una sottoclasse di un vero oggetto che esegue delle inizializzazioni aggiuntive, o potrebbe essere un'implementazione completamente diversa.

[Global]
Includes=foopreviews.h
[FancyWidget]
ImplClass=FancyWidgetPreview

VEDI ANCHE

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

La documentazione di Qt(TM) Designer sulla creazione di estensioni per oggetti personalizzati.

ERRORI

Usa il sito di gestione dei bug di KDE[1] per segnalarli, non mandare un messaggio direttamente agli autori.

AUTORI

Richard Johnson <rjohnson@kde.org>

Ha scritto la documentazione originale.

Alex Merry <alexmerry@kde.org>

Ha aggiornato la documentazione per KDE Frameworks 5.

NOTE

1.
il sito di gestione dei bug di KDE
2014-05-28 KDE Frameworks Frameworks 5.0