QML / qdo c: Как определить наследование и важный оператор для моих компонентов qml? - PullRequest
0 голосов
/ 02 марта 2020

Я пишу документацию для моего проекта QML с помощью QDo c. Пока что я могу сделать простой с описанием моих функций / сигналов / свойств. Теперь я хотел бы определить наследование и важные операторы, как в Qt do c (см. Ниже).

enter image description here

  • Согласно документации Qt наследование определяется с помощью команды \ наследует . Однако я не вижу никакого результата, когда хочу, чтобы мои объекты наследовали от Item , и у меня нет никаких предупреждений / ошибок при запуске qdo c.

  • Согласно Qt wiki , QDo c рассматривает версию, указанную в команде, как оператор импорта. Следуя примеру, я попытался определить свой собственный импорт заявление, поскольку мои qml-файлы будут доступны только с указанным c импортом (скажем, MyLib 2.0 здесь). Как и наследование, qdo c, похоже, не понимает, потому что у меня есть следующий результат:

enter image description here

Любая идея чего я пропустил? Ниже вы можете найти простой пример того, что у меня есть (файл css очень прост, поэтому я не думаю, что показывать его уместно).

Моя среда:

  • Qt 5.10.10 с msvc2015
  • LLVM 9.0.0 (для qdo c)

config.qdocconf

sourcedirs = .
headerdirs = .
imagedirs = .

sources.fileextensions = "*.qml"


outputdir  =    ./doc/
outputformats = HTML

HTML.stylesheets = style.css
HTML.headerstyles = "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\"/>\n"

CustomItem.qml

import QtQuick 2.10;

/*!
    MyLib 2.0    //!  What should I write to get the import statement?

   \qmltype CustomItem
   \inherits Item //! What should I write to get the "Inherits"?


   \brief A simple example of object that inherits of Item.

   I can safely assume that the properties and signals work well.
*/

Item {
    id: customItem;

    /*!
        prop1 description
    */
    property color prop1;

    /*!
        prop2 description
    */
    property int prop2: 6;
}

Спасибо за помощь!

1 Ответ

0 голосов
/ 03 марта 2020

Я думаю, вам нужно указать модуль QML, используя свойство \inqmlmodule и файл module.qdocconf.

Пример для qdocconf:

/*!
    \qmlmodule MyLib 2.0
    \title MyLib 2.0 QML types

    MyLib is a collection of types ... 

    ...
*/

В вашем файле типов QML :

import QtQuick 2.10;

/*!
   \qmltype CustomItem
   \inherits Item
   \inqmlmodule MyLib
 ...
*/

Item {
 ...
}

Для наследования вы можете добавить префикс типа к его модулю:

\inherits QtQuick::Item

Если ваш тип определен в классе C ++, также добавьте свойство \instanciates:

\instanciates MyType 

Полный пример:

/*!
    \qmltype CustomType
    \inqmlmodule MyLib
    \inherits QtQuick::Item
    \brief Provides a custom item type.

    CustomType provides a component for use as ...
*/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...