【问题标题】:Dynamically create a QML object of a type动态创建一个类型的 QML 对象
【发布时间】:2021-08-10 02:05:08
【问题描述】:

Qt.createComponent(...) 只接受一个自定义组件的 URL,但是我如何创建一个组件,比如说,Item 类型?

我想要Qt.createComponent(Item)Qt.createComponent("Item") 之类的东西,但这些都不起作用。我真的不需要组件,因为我想得到一个对象作为结果,所以也许有类似Item.createObject(...)的东西?

【问题讨论】:

  • 您能解释一下您的用例吗? Loader 会满足您的需求吗?
  • @JarMan ,我需要动态创建和添加多个元素,与here 描述的方式相同,但不是自定义组件(在 .qml 文件中声明),我需要使用现有的qml 类型(示例中的图像)。

标签: qt qml


【解决方案1】:

您可以静态创建组件,并从其动态创建对象。这是你要找的吗?

Component {
    id: itemComp
    Item {}
}

Component.onCompleted:  {
    var item1 = itemComp.createObject(parentObj)
    var item2 = itemComp.createObject(parentObj)
    ... // etc...
}

【讨论】:

    猜你喜欢
    • 2017-12-10
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 2019-03-25
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多