|
|||||||
Доступ к коду QML из Qt и наоборот
Время создания: 06.01.2018 14:01
Текстовые метки: qt, qml, скрипт
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - QML
Запись: xintrea/mytetra_syncro/master/base/1421496477kc3g2ayard/text.html на raw.github.com
|
|||||||
|
|||||||
Вопрос: Допустим, я хочу в программе активно сообщать QML и Qt и хочу сделать некоторый API, который бы дергал как QML код так и Qt код. Судя по всему есть три варианта.
В первом случае мне не нравится тот факт, что я в статический типизированном языке, в большей части программы я буду костыляться с динамической природой QML и всюду будет куча левого кода, а если левого кода не будет, то будет куча ненадежного кода. Во втором случае мне не нравится то, что в QML коде я не смогу явно увидеть API и без отдельной документации нужно будет лезть в C++ код, чтобы понять какие свойства есть у объекта. В третьем случае мне не нравится то, что мне придеться дублировать по сути одно и тоже API в QML коде и в C++ коде и придеться править больше кода при смене интерфейса. Это не критично если каждый метод API дергается в 100 разных местах (но критично дергать методы в 100 разных местах), но, обычно, люди стараются так не делать и каждый метод будет вызываться в одном - двух местах. По этому, по факту, это просто в два раза больше работы чем в первом или втором случае. Ответ: Вариант 2. Для документации есть специальный текстовый формат, через который типы доступны в QML: http://doc.qt.io/qt-5/qtqml-modules-qmldir.html#writing-a-qmltypes-file Но даже и без него, если QtCreator видит исходники, зарегистрированные в qmlRegisterType(), то нормально разворачивает типы. Спасибо, я тоже склоняюсь к этому варианту. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|