В QML я могу динамически создавать компонент (а не загружать его из файла), вызывая Qt.createQmlObject
. Пример:Эквивалент Qt.createQmlObject в C++
Qt.createQmlObject('import QtQuick 1.0; Rectangle {color: "red"; width: 20; height: 20}', parent, "dynamicPath");
Есть ли способ сделать то же самое с кода на C++? Не обязательно включать парсинг QML — Я просто ищу способ, например, динамически создавать и прикреплять Rectangle
или TextField
к документу QML из C++.
Отлично, спасибо! И нет, я не на Qt Quick 1 - я скопировал образец фрагмента из некоторых явно устаревших документов. – spinda
Является ли 'QUrl (" dynamicPath ")' документированным где-то? Или это просто какое-то имя, которое вы дали? –
Из [docs] (http://doc.qt.io/qt-5/qqmlcomponent.html#setData): «Если предоставлен _url_, он используется для установки имени компонента и предоставления базового пути для элементов разрешенных этим компонентом ». - обычно люди пропускают пустой URL. Если вы получаете сообщение об ошибке, передавая ему что-то не пустое, просто разъясняется, откуда исходит ошибка. – jpnurmi