KGENDESIGNERPLUGI(1)

NOME
kgendesignerplugin - Gera plugins de widgets para o Qt(TM) Designer.

SINOPSE

kgendesignerplugin [OPÇÕES...] arquivo

DESCRIçãO

Os plugins de widgets personalizados do Qt(TM) Designer normalmente seguem um padrão normal, sendo que as classes oferecidas pelo plugin fornecem, na sua maioria, alguma informação estática, em conjunto com a função para criar uma instância, a qual será normalmente uma simples chamada ao construtor. O kgendesignerplugin permite aos desenvolvedores das bibliotecas que fornecem novos widgets, a criação de um desses plugins, sem a necessidade de criar todo o código acessório associado, oferecendo um arquivo de descrição do tipo INI.

O kgendesignerplugin escolhe opções predefinidas para a maioria das definições, sendo necessária apenas alguma configuração mínima.

OPçõES

-o arquivo
    O nome do arquivo em C++ gerado. Se não for indicado, será usado o stdout.

-n nome-plugin
    Fornecido para fins de compatibilidade. O valor padrão da opção 'PluginName' no arquivo de entrada.

-g grupo
    Fornecido para fins de compatibilidade. O valor padrão da opção 'DefaultGroup' no arquivo de entrada.

--author
    Mostra informações sobre o autor.

--license
    Mostra informações sobre a licença.

-h, --help
    Mostra um breve texto de ajuda.

-v, --version
    Mostra informações sobre a versão.

FORMATO DO ARQUIVO

O arquivo de entrada é um arquivo de configuração do tipo INI (para ser mais específico, está no formato suportado pelo framework KConfig) que descreve um conjunto de widgets. Contém uma seção [Global], que oferece informações gerais sobre o plugin, assim como uma seção para cada widget que deverá ser incluído no plugin.

A seção [Global] pode ter os seguintes itens:

DefaultGroup
    O valor padrão para o item Group nas seções das classes (padrão: "Custom", a menos que seja usada a opção -g).

Includes
    Uma lista (separada por vírgulas) dos arquivos de inclusão necessários (padrão: em branco). Repare que os arquivos de cabeçalho dos widgets definidos posteriormente no arquivo não devem ser indicados aqui. Em vez disso, este campo serve para arquivos de cabeçalho especiais para uso do próprio plugin, como os das classes que fornecem visualizações.

PluginName
    Nome da classe principal em C++ no plugin (padrão: "WidgetsPlugin", a menos que seja usada a opção -n).

Cada classe deverá ter a sua própria seção [ClassName], a qual poderá incluir os seguintes itens:

CodeTemplate
    O valor devolvido pela função codeTemplate() do plugin, o qual está marcado para "uso futuro" pelo Qt(TM) Designer (padrão: em branco).

ConstructorArgs
    Os argumentos para passar ao construtor da classe indicada por ImplClass; estes devem estar entre parênteses (padrão: "(parent)"). A única variável que está com certeza disponível é a parent, que é o QWidget pai passado pelo Qt(TM) Designer.

    Este item é ignorado se estiver definido como CreateWidget.

CreateWidget
    O código necessário para criar uma instância do widget (padrão: usa o new para criar uma instância da classe indicada pelo item ImplClass, passando os argumentos definidos em ConstructorArgs). Veja as notas sobre o ImplClass e o ConstructorArgs.

DomXML
    Uma descrição da interface gráfica em XML do widget (padrão: o valor fornecido pelos arquivos de cabeçalho do plugin do Qt(TM) Designer).

Group
    O grupo sob o qual mostrar o widget no Qt(TM) Designer (padrão: o valor do item DefaultGroup na seção [Global]).

IconName
    Arquivo de imagem ou nome do ícone padrão a ser usado como ícone para este widget na lista de widgets do Qt(TM) Designer (padrão: um arquivo PNG com o nome da seção, sem quaisquer dois pontos duplos, na pasta "pics" de um arquivo de recursos compilado. Por exemplo, :/pics/Foo.png na seção [Foo] ou :/pics/FooBar.png na seção [Foo::Bar]).

ImplClass
    A classe que deverá ser usada para criar uma instância do widget para ser usado no Qt(TM) Designer (padrão: nome da seção). Lembre-se de que esta não precisa ser a classe que seria criada para um aplicativo final: isso é determinado pelo DomXML.

    Este item é ignorado se estiver definido como CreateWidget.

IncludeFile
    O cabeçalho que deverá ser incluído para usar este widget (padrão: a versão em minúsculo do nome da seção, retirando todos os dois pontos e adicionando o texto ".h". Por exemplo, foo.h na seção [Foo] ou foobar.h na seção [Foo::Bar]).

IsContainer
    Se este widget pode conter ou não outros widgets (padrão: false).

ToolTip
    A dica a ser exibida quando passar o ponteiro do mouse sobre o widget na lista de widgets do Qt(TM) Designer (padrão: o nome da seção, com o texto " Widget" adicionado. Por exemplo, Foo Widget na seção [Foo]).

WhatsThis
    O texto 'O que é isto?' associado com o widget no Qt(TM) Designer (padrão: o nome da seção, com o texto " Widget" adicionado. Por exemplo, Foo Widget na seção [Foo]).

EXEMPLOS

O arquivo de descrição mais simples poderá ser algo do tipo:

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

Repare que cada classe deverá ter pelo menos uma chave definida (ToolTip foi usado neste exemplo), caso contrário, será ignorada.

Normalmente, você vai querer alterar pelo menos o texto visível ao usuário, o que corresponde aos itens ToolTip, WhatsThis e Group. Além disso, definir o nome do plugin poderá ser uma boa ideia para evitar possíveis conflitos de símbolos e para não confundir os depuradores (tanto o aplicativo de depuração quanto a pessoa que efetua a mesma):

    [Global]
    PluginName=QualquerWidget
    DefaultGroup=Visualização
    [Foo]
    ToolTip=Mostra ursos
    WhatsThis=Um widget de imagens que mostra ursos dançando
    [Bar]
    ToolTip=Editor de barras
    WhatsThis=Uma interface de edição de barras para ursos
    Group=Edição

Pode ser necessário arquivos mais complexos, caso tenha classes com espaços de nomes ou opções extras que seja necessário passar aos construtores, como por exemplo:

    [Global]
    PluginName=QualquerWidget
    DefaultGroup=Foo
    [Foo::Bar]
    ToolTip=Mostra barras
    WhatsThis=Um widget que mostra as barras de uma determinada forma
    IncludeFile=foo/bar.h
    IconName=:/previews/bar.png
    [Foo::Baz]
    IncludeFile=foo/baz.h
    ConstructorArgs=(Foo::Baz::SomeOption, parent)
    Group=Foo (Especial)
    IsContainer=true
    IconName=:/previews/baz.png

Em alguns casos, os widgets muito complexos poderão necessitar da implementação de uma "classe de visualização" para usar no Qt(TM) Designer; esta poderá ser uma subclasse do widget real que simplesmente faz mais algumas configurações adicionais, ou poderá então ser uma implementação completamente diferente.

    [Global]
    Includes=visualizacoes.h
    [WidgetBonito]
    ImplClass=WidgetBonitoVisualização

VEJA TAMBéM

https://doc.qt.io/qt-5/designer-creating-custom-widgets.html
    A documentação do Qt(TM) Designer para criação de plugins para widgets personalizados.

PROBLEMAS

Use por favor o rastreador de erros do KDE[1] para reportar erros; não os envie diretamente para os autores por e-mail.

AUTORES

Richard Johnson <rjohnson@kde.org>
    Escreveu a documentação original.

Alex Merry <alexmerry@kde.org>
    Atualizou a documentação para o KDE Frameworks 5.

NOTAS

1.  rastreador de erros do KDE
    https://bugs.kde.org