【发布时间】:2014-06-07 16:09:51
【问题描述】:
在 Qt 5.3 中,我一直使用 Loader QML 元素来加载屏幕,在后台从 QML 文件加载视图。现在我正在尝试动态加载 QML 字符串。 Qt.createQmlObject 使我能够这样做,但我似乎无法让 Loader 元素一起玩。
似乎Loader 只接受一个 URL (QUrl) 或组件 (QQmlComponent),但 Qt.createQmlObject 创建一个对象 (QObject)。
我是 QML 新手,但据我了解,组件是可重用的元素,类似于类,而对象是这些类的实例。因此,我似乎无法理解为什么 Loader 不能处理对象。
如何在(异步)解析和初始化 QML 字符串时显示加载屏幕?
QML 代码示例:
Item {
Rectangle {id: content}
Loader {id: loader}
Component.onCompleted: {
var obj = Qt.createQmlObject('import QtQuick 2.3; Rectangle {}', content);
loader.source = obj; // Throws error.
}
}
【问题讨论】:
标签: qt asynchronous qml