KGENDESIGNERPLUGI(1) KDE Frameworks: KDesignerPlugi KGENDESIGNERPLUGI(1) NOME kgendesignerplugin - Gera plugins de widgets para o Qt(TM) Designer. SINOPSE kgendesignerplugin [OPCOES...] arquivo DESCRIcaO Os plugins de widgets personalizados do Qt(TM) Designer normalmente seguem um padrao normal, sendo que as classes oferecidas pelo plugin fornecem, na sua maioria, alguma informacao estatica, em conjunto com a funcao para criar uma instancia, a qual sera normalmente uma simples chamada ao construtor. O kgendesignerplugin permite aos desenvolvedores das bibliotecas que fornecem novos widgets, a criacao de um desses plugins, sem a necessidade de criar todo o codigo acessorio associado, oferecendo um arquivo de descricao do tipo INI. O kgendesignerplugin escolhe opcoes predefinidas para a maioria das definicoes, sendo necessaria apenas alguma configuracao minima. OPcoES -o arquivo O nome do arquivo em C++ gerado. Se nao for indicado, sera usado o stdout. -n nome-plugin Fornecido para fins de compatibilidade. O valor padrao da opcao 'PluginName' no arquivo de entrada. -g grupo Fornecido para fins de compatibilidade. O valor padrao da opcao 'DefaultGroup' no arquivo de entrada. --author Mostra informacoes sobre o autor. --license Mostra informacoes sobre a licenca. -h, --help Mostra um breve texto de ajuda. -v, --version Mostra informacoes sobre a versao. FORMATO DO ARQUIVO O arquivo de entrada e um arquivo de configuracao do tipo INI (para ser mais especifico, esta no formato suportado pelo framework KConfig) que descreve um conjunto de widgets. Contem uma secao [Global], que oferece informacoes gerais sobre o plugin, assim como uma secao para cada widget que devera ser incluido no plugin. A secao [Global] pode ter os seguintes itens: DefaultGroup O valor padrao para o item Group nas secoes das classes (padrao: "Custom", a menos que seja usada a opcao -g). Includes Uma lista (separada por virgulas) dos arquivos de inclusao necessarios (padrao: em branco). Repare que os arquivos de cabecalho dos widgets definidos posteriormente no arquivo nao devem ser indicados aqui. Em vez disso, este campo serve para arquivos de cabecalho especiais para uso do proprio plugin, como os das classes que fornecem visualizacoes. PluginName Nome da classe principal em C++ no plugin (padrao: "WidgetsPlugin", a menos que seja usada a opcao -n). Cada classe devera ter a sua propria secao [ClassName], a qual podera incluir os seguintes itens: CodeTemplate O valor devolvido pela funcao codeTemplate() do plugin, o qual esta marcado para "uso futuro" pelo Qt(TM) Designer (padrao: em branco). ConstructorArgs Os argumentos para passar ao construtor da classe indicada por ImplClass; estes devem estar entre parenteses (padrao: "(parent)"). A unica variavel que esta com certeza disponivel e a parent, que e o QWidget pai passado pelo Qt(TM) Designer. Este item e ignorado se estiver definido como CreateWidget. CreateWidget O codigo necessario para criar uma instancia do widget (padrao: usa o new para criar uma instancia da classe indicada pelo item ImplClass, passando os argumentos definidos em ConstructorArgs). Veja as notas sobre o ImplClass e o ConstructorArgs. DomXML Uma descricao da interface grafica em XML do widget (padrao: o valor fornecido pelos arquivos de cabecalho do plugin do Qt(TM) Designer). Group O grupo sob o qual mostrar o widget no Qt(TM) Designer (padrao: o valor do item DefaultGroup na secao [Global]). IconName Arquivo de imagem ou nome do icone padrao a ser usado como icone para este widget na lista de widgets do Qt(TM) Designer (padrao: um arquivo PNG com o nome da secao, sem quaisquer dois pontos duplos, na pasta "pics" de um arquivo de recursos compilado. Por exemplo, :/pics/Foo.png na secao [Foo] ou :/pics/FooBar.png na secao [Foo::Bar]). ImplClass A classe que devera ser usada para criar uma instancia do widget para ser usado no Qt(TM) Designer (padrao: nome da secao). Lembre-se de que esta nao precisa ser a classe que seria criada para um aplicativo final: isso e determinado pelo DomXML. Este item e ignorado se estiver definido como CreateWidget. IncludeFile O cabecalho que devera ser incluido para usar este widget (padrao: a versao em minusculo do nome da secao, retirando todos os dois pontos e adicionando o texto ".h". Por exemplo, foo.h na secao [Foo] ou foobar.h na secao [Foo::Bar]). IsContainer Se este widget pode conter ou nao outros widgets (padrao: false). ToolTip A dica a ser exibida quando passar o ponteiro do mouse sobre o widget na lista de widgets do Qt(TM) Designer (padrao: o nome da secao, com o texto " Widget" adicionado. Por exemplo, Foo Widget na secao [Foo]). WhatsThis O texto 'O que e isto?' associado com o widget no Qt(TM) Designer (padrao: o nome da secao, com o texto " Widget" adicionado. Por exemplo, Foo Widget na secao [Foo]). EXEMPLOS O arquivo de descricao mais simples podera ser algo do tipo: [Foo] ToolTip=Displays foos [Bar] ToolTip=Bar editor Repare que cada classe devera ter pelo menos uma chave definida (ToolTip foi usado neste exemplo), caso contrario, sera ignorada. Normalmente, voce vai querer alterar pelo menos o texto visivel ao usuario, o que corresponde aos itens ToolTip, WhatsThis e Group. Alem disso, definir o nome do plugin podera ser uma boa ideia para evitar possiveis conflitos de simbolos e para nao confundir os depuradores (tanto o aplicativo de depuracao quanto a pessoa que efetua a mesma): [Global] PluginName=QualquerWidget DefaultGroup=Visualizacao [Foo] ToolTip=Mostra ursos WhatsThis=Um widget de imagens que mostra ursos dancando [Bar] ToolTip=Editor de barras WhatsThis=Uma interface de edicao de barras para ursos Group=Edicao Pode ser necessario arquivos mais complexos, caso tenha classes com espacos de nomes ou opcoes extras que seja necessario 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 poderao necessitar da implementacao de uma "classe de visualizacao" para usar no Qt(TM) Designer; esta podera ser uma subclasse do widget real que simplesmente faz mais algumas configuracoes adicionais, ou podera entao ser uma implementacao completamente diferente. [Global] Includes=visualizacoes.h [WidgetBonito] ImplClass=WidgetBonitoVisualizacao VEJA TAMBeM https://doc.qt.io/qt-5/designer-creating-custom-widgets.html A documentacao do Qt(TM) Designer para criacao de plugins para widgets personalizados. PROBLEMAS Use por favor o rastreador de erros do KDE[1] para reportar erros; nao os envie diretamente para os autores por e-mail. AUTORES Richard Johnson Escreveu a documentacao original. Alex Merry Atualizou a documentacao para o KDE Frameworks 5. NOTAS 1. rastreador de erros do KDE https://bugs.kde.org KDE Frameworks Frameworks 5.0 28/05/2014 KGENDESIGNERPLUGI(1)