Scroll to navigation

kgendesignerplugi(1) KDE Frameworks: KDesignerPlugi kgendesignerplugi(1)

НАЗВА

kgendesignerplugin - Програма для створення додатків віджетів для Qt(TM) Designer.

КОРОТКИЙ ОГЛЯД

kgendesignerplugin [ПАРАМЕТРИ...] файл

ОПИС

Нетипові додатки віджетів для Qt(TM) Designer зазвичай мають стандартну структуру, класи, роботу яких забезпечує додаток, здебільшого надають статичну інформацію, а функція для створення екземпляра класу типово є простим викликом конструктора. За допомогою kgendesignerplugin розробники бібліотек, які створюють нові віджети, можуть створити такий додаток з усім стандартним кодом на основі простого файла опису у стилі ini.

kgendesignerplugin вибирає загальноприйнятні типові значення для більшості параметрів, отже, зазвичай, потрібні лише мінімальні зміни у налаштуваннях.

ПАРАМЕТРИ

-o файл
Назва створеного програмою файла коду C++. Якщо назву не вказано, дані буде виведено до stdout.

-n назва додатка

Забезпечує сумісність із попередніми версіями. Типове значення для параметра PluginName у файлі вхідних даних.

-g група

Забезпечує сумісність із попередніми версіями. Типове значення для параметра DefaultGroup у файлі вхідних даних.

--author

Вивести дані щодо авторства програми.

--license

Вивести дані щодо умов ліцензування на програму.

-h, --help

Вивести короткий текст довідки.

-v , --version

Вивести дані щодо версії програми.

ФОРМАТ ФАЙЛІВ

Файл вхідних даних є файлом налаштувань у стилі ini (якщо бути точнішим, то у форматі, підтримуваному бібліотекою KConfig), який містить опис набору віджетів. У ньому має бути розділ [Global], де наведено загальні відомості щодо додатка, та окремий розділ для кожного з віджетів, які має бути включено до додатка.

У розділі [Global] може бути вказано такі записи:

DefaultGroup

Типове значення для запису Group у розділах класів (типове значення: "Custom", якщо не вказано параметра -g).

Includes

Список включень, відокремлених комами (типове значення: порожній). Зауважте, що тут не слід вказувати файли заголовків, які пізніше буде вказано у файлі; це лише спеціальні файли заголовків, які використовуватимуться лише самим додатком, якщо заголовки для класів, які надають можливість попереднього перегляду.

PluginName

Назва основного класу C++ у додатку (типове значення: WidgetsPlugin, якщо не вказано параметра -n).

У кожного класу має бути власний розділ [ClassName], у якому мають бути такі записи:

CodeTemplate

Значення, яке повертає функція codeTemplate() додатка, яку буде позначено для наступного використання Qt(TM) Designer (типове значення: порожнє).

ConstructorArgs

Аргументи, які слід передати конструктору класу, вказаного за допомогою ImplClass; ці значення слід вказувати у дужках (типове значення: (parent)). Єдиною гарантовано доступною змінною є parent, тобто батьківський об’єкт QWidget, переданий Qt(TM) Designer.

Цей запис буде проігноровано, якщо встановлено значення для CreateWidget.

CreateWidget

Код, потрібний для створення екземпляра віджета (типове значення: використовувати new для створення екземпляра класу, вказаного записом ImplClass, передавати аргументи, вказані за допомогою ConstructorArgs). Див. опис записів ImplClass та ConstructorArgs.

DomXML

Опис інтерфейсу користувача віджета у форматі XML (типове значення: типовий опис, створений на основі заголовків додатків Qt(TM) Designer).

Group

Група, у якій віджет буде показано у Qt(TM) Designer (типове значення: значення запису DefaultGroup у розділі [Global]).

IconName

Файл зображення або назва стандартної піктограми, яку слід використовувати як піктограму для цього віджета у списку віджетів Qt(TM) Designer (типове значення: файл PNG, назва якого збігається з назвою розділу без подвійних двокрапок, розташований у каталозі pics вбудованого файла ресурсів; приклад: :/pics/Foo.png у розділі [Foo] або :/pics/FooBar.png у розділі [Foo::Bar]).

ImplClass

Клас, який слід використовувати для створення екземпляра віджета для використання у Qt(TM) Designer (типове значення: назва розділу). Зауважте, що насправді це може бути не той клас, який було б створено остаточною програмою: той клас визначається у DomXML.

Цей запис буде проігноровано, якщо встановлено значення для CreateWidget.

IncludeFile

Файл заголовків, який слід включити для використання цього віджета (типове значення: написана малими літерами назва розділу без двокрапок з дописаним «.h»; приклад: foo.h у розділі [Foo] або foobar.h у розділі [Foo::Bar]).

IsContainer

Визначає, чи містить цей віджет інші віджети (типове значення: false).

ToolTip

Підказка, яку буде показано у відповідь на затримування вказівника миші на віджеті у списку віджетів Qt(TM) Designer (типове значення: назва розділу з дописуванням « Widget»; приклад: Foo Widget у розділі [Foo]).

WhatsThis

Текст підказки «Що це?», пов’язаної з віджетом у Qt(TM) Designer (типове значення: назва розділу з дописаним « Widget»; приклад: Foo Widget у розділі [Foo]).

ПРИКЛАДИ

Найпростіший файл опису може виглядати так:

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

Зауважте, що у кожному класі має бути принаймні один встановлений ключ (у нашому прикладі використано ключ ToolTip), інакше запис класу буде проігноровано.

Зазвичай, виникає потреба у зміні принаймні видимого користувачем тексту, тобто записів ToolTip, WhatsThis та Group. Крім того, варто також визначити назву додатка, щоб запобігти можливим конфліктам символів і не ускладнювати роботу засобів діагностики (самої програми та особи, яка шукає вади):

[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
    

Якщо у вашій програмі використовуються окремі простори назв для різних класів або додаткові параметри, які слід передавати конструкторам, доведеться створити складніший файл. Приклад:

[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
    

Іноді, у дуже складних віджетах потрібна особлива реалізація «класу попереднього перегляду» для використання у Qt(TM) Designer; це може бути підклас справжнього віджета, лише з деякими додатковими налаштуваннями, або зовсім відмінна від нього реалізація.

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

ПРОЧИТАЙТЕ ТАКОЖ

http://qt-project.org/doc/qt-5/designer-creating-custom-widgets.html
Документація з Qt(TM) Designer щодо створення додатків для нетипових віджетів.

ВАДИ

Для повідомлень про вади, будь ласка, використовуйте bugs.kde.org[1], не надсилайте ці повідомлення безпосередньо авторам.

АВТОРИ

Richard Johnson <rjohnson@kde.org>
Авторство початкової версії документації.

Alex Merry <alexmerry@kde.org>

Оновлена документація для KDE Frameworks 5.

ПРИМІТКИ

1.
bugs.kde.org
28 травня 2014 року KDE Frameworks Frameworks 5.0