Это можно создавать компоненты QML из файлов с помощью Qt.createComponent(filename)
Создание компонента QML из строки
Можно создать объект QML из строк с помощью Qt.createQmlObject(string)
можно создавать компоненты QML из кода с помощью Component {...}
Но возможно ли создать компонент QML из строки? Я имею в виду, не пытаясь сохранить его как временный файл только ради использования Qt.createComponent(filename)
?
EDIT: Просто чтобы прояснить, у меня уже есть компоненты в этом примере форме:
import QtQuick 2.0
Rectangle {
width: 100
height: 100
color: "red"
}
Так мне нужно создать компонент из этой строки без инстанцирования его. Я не могу просто обернуть строку в "Component {" + string + "}"
, потому что импорт не может быть объявлен внутри компонента. Одним из решений было бы использовать комплексный синтаксический анализ для вставки компонента непосредственно перед первым элементом и после импорта, но это не делает меня самым элегантным решением.
Вы говорите себе о создании компонента из строки с помощью 'Qt.createQmlObject (string)'. Так в чем ваш вопрос? – folibis
@folibis - нет, проверьте, что снова я говорю «объект QML», который не совпадает с «компонентом QML», этот компонент является прототипом для объекта, но вы не можете использовать объект в месте, где требуется компонент , –
см. Мой ответ ниже – folibis