如何动态销毁/删除QML组件?

铯133

我试图根据用户与QML中的复选框的交互来动态创建并销毁组件。选中复选框,创建组件。关闭复选框,销毁组件。创建该组件有效,但销毁该组件无效。该组件仍然存在。

在QT文档的文档在这里提及的是,销毁方法应该创建一个组件后工作。有什么想法我可能在这里做错了吗?代码如下。

import QtQuick 2.7
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.1

Rectangle {
    property var deficiencyType
    width: 600
    height: 800
    color:"white"
    CheckBox {
        id:checkbox
        text: "Check deficiency on/off"
        onClicked: {
            if (checked) {
                deficiencyType = Qt.createComponent("Form.qml")
                deficiencyType.createObject(columnRef)
            } else {
                deficiencyType.destroy()
                console.log(deficiencyType)
            }
        }
    }
    ColumnLayout {
        id:columnRef
        Layout.fillHeight: true
        Layout.fillWidth: true
        anchors {
            top: checkbox.bottom
            topMargin: 10
        }
    }
}
罐子人

正如@Alaenix所说,Loader可能会为您工作。但是要直接回答您的问题,destroy()的问题在于您要破坏的是组件,而不是所创建的对象。因此,更改此代码:

                    deficiencyType = Qt.createComponent("Form.qml")
                    deficiencyType.createObject(columnRef)

对此:

                    var component = Qt.createComponent("Form.qml")
                    deficiencyType = component.createObject(columnRef)

应该可以解决您的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何销毁动态角度8创建的组件

来自分类Dev

如何显示已在Angular 8中销毁的动态组件?

来自分类Dev

如何在Angular的ts文件中销毁动态加载的组件?

来自分类Dev

组件销毁后如何删除ViewEncapsulation.None

来自分类Dev

如何在QML中的同一事件之后创建/销毁动态对象?

来自分类Dev

如何在QML中动态添加组件?

来自分类Dev

如何将动态内容放入QML组件

来自分类Dev

如何从列 QML 元素中删除动态创建的项目

来自分类Dev

在销毁/删除angular2组件之前,如何对其应用css动画?

来自分类Dev

如何列出游戏对象上不包含变换的所有组件,以及如何销毁(删除)这些组件?

来自分类Dev

如何动态删除JPanel中的所有组件

来自分类Dev

如何删除/销毁活动记录结果集?

来自分类Dev

销毁后如何从参数中删除ID?

来自分类Dev

如何在Rails中删除/销毁记录?

来自分类Dev

如何验证用户是否被软删除或销毁

来自分类Dev

使用信号与动态项目进行通讯和删除时,如何避免QML的页面错误?

来自分类Dev

QML对象的销毁顺序

来自分类Dev

如何从JXTaskPane删除组件?

来自分类Dev

如何销毁一系列自定义组件

来自分类Dev

在Angular结构指令中使用动态组件会产生额外的HTML标签。如何删除或更换它?

来自分类Dev

如何获取React中动态添加的点击组件的索引并将其删除?

来自分类Dev

如何动态删除PictureBoxes?

来自分类Dev

如何动态删除JPanel?

来自分类Dev

如何动态删除PictureBoxes?

来自分类Dev

ReferenceError:未定义组件-QML动态对象创建

来自分类Dev

从C ++在加载程序中QML动态插入组件

来自分类Dev

无法更改从C ++动态创建的QML组件的属性

来自分类Dev

QML从C ++在加载程序中动态插入组件

来自分类Dev

如何从动态创建和销毁的源构建 Observable?

Related 相关文章

  1. 1

    如何销毁动态角度8创建的组件

  2. 2

    如何显示已在Angular 8中销毁的动态组件?

  3. 3

    如何在Angular的ts文件中销毁动态加载的组件?

  4. 4

    组件销毁后如何删除ViewEncapsulation.None

  5. 5

    如何在QML中的同一事件之后创建/销毁动态对象?

  6. 6

    如何在QML中动态添加组件?

  7. 7

    如何将动态内容放入QML组件

  8. 8

    如何从列 QML 元素中删除动态创建的项目

  9. 9

    在销毁/删除angular2组件之前,如何对其应用css动画?

  10. 10

    如何列出游戏对象上不包含变换的所有组件,以及如何销毁(删除)这些组件?

  11. 11

    如何动态删除JPanel中的所有组件

  12. 12

    如何删除/销毁活动记录结果集?

  13. 13

    销毁后如何从参数中删除ID?

  14. 14

    如何在Rails中删除/销毁记录?

  15. 15

    如何验证用户是否被软删除或销毁

  16. 16

    使用信号与动态项目进行通讯和删除时,如何避免QML的页面错误?

  17. 17

    QML对象的销毁顺序

  18. 18

    如何从JXTaskPane删除组件?

  19. 19

    如何销毁一系列自定义组件

  20. 20

    在Angular结构指令中使用动态组件会产生额外的HTML标签。如何删除或更换它?

  21. 21

    如何获取React中动态添加的点击组件的索引并将其删除?

  22. 22

    如何动态删除PictureBoxes?

  23. 23

    如何动态删除JPanel?

  24. 24

    如何动态删除PictureBoxes?

  25. 25

    ReferenceError:未定义组件-QML动态对象创建

  26. 26

    从C ++在加载程序中QML动态插入组件

  27. 27

    无法更改从C ++动态创建的QML组件的属性

  28. 28

    QML从C ++在加载程序中动态插入组件

  29. 29

    如何从动态创建和销毁的源构建 Observable?

热门标签

归档