gpt4 book ai didi

qt - 使用 Qt.createQmlObject() 创建自定义 qml 对象实例

转载 作者:行者123 更新时间:2023-12-04 18:33:48 25 4
gpt4 key购买 nike

我有一个名为 Target.qml 的自定义 QML 对象.我想使用 Qt.createQmlObject() 创建此对象的动态实例.

它在使用内置 qml 对象(如 Image)时有效:

var newTarget = Qt.createQmlObject('import Qt 4.7; Image {source: "widgets/SlideSwitchImages/knob.png"; }', parent);

但是在使用任何自定义对象类型时失败,例如:
var newTarget = Qt.createQmlObject('import Qt 4.7; Target {}', parent);

但是,如果我在 QML 中静态使用我的自定义 Target 类型,则一切正常。这是一个已知的限制,有什么解决方法吗?

最佳答案

如果您只需要任意数量的 Target 实例,最好使用 Component。

Component {
id: targetFactory
Target {}
}

var newTarget = targetFactory.createObject(parent, properties)

但是,如果您想坚持使用 Qt.createQmlObject 调用,我猜您在不同的目录中有 Target 组件,而您只是错过了一些导入语句。字符串参数必须是一个 QML 文件的内容,该文件与调用它的文件位于同一目录中。

例如。
var newTarget = Qt.createQmlObject('import QtQuick 1.0; import "../Targets"; Target {}', parent);

顺便说一句:不推荐使用 Qt 4.7 导入,因为它们不允许 QtQuick 的其他版本。

关于qt - 使用 Qt.createQmlObject() 创建自定义 qml 对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8266464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com