如何删除 QML 对象

2024-01-18

我正在尝试删除 QML 对象并重新创建对象,如下所示:

Rectangle{
    property var obj

    signal videoStopped(variant complete)

    function recreate(url){
        if(!obj){
            console.log("createObject")
            obj = videoComponet.createObject(root)
            obj.stopped.connect(function(){
                videoStopped(obj.status == MediaPlayer.EndOfMedia)
            })
        }
        obj.source = url
        obj.play()
    }
    function stop(){
        obj.destroy() // obj.deleteLater()
    }
    Component{
        id: videoComponet
        Video {
            anchors.fill: parent
            visible: true
            autoPlay: true; autoLoad: true
        }
    }
}

C++ 侧调用recreate生成一个对象并调用stop删除它。

  1. recreate⇒ 控制台输出创建对象

  2. stop

  3. recreate⇒ 控制台无输出

Both obj.destroy() and obj.deleteLater()没有工作。 如何像C++中的delete一样强制删除动态创建的对象。


一个小改动S.M.穆萨维的回答 https://stackoverflow.com/a/45078207/691711: 我观察到将 sourceComponent 设置为 undefined 不起作用。我必须将其设置为 null 才能卸载组件。另一个选项是将源设置为空字符串。

onClicked: {
    loader.sourceComponent = null; //causes destroying loaded component
}

OR

onClicked: {
    loader.source = ""; //causes destroying loaded component
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除 QML 对象 的相关文章

随机推荐

  • Python 列表迭代器行为和 next(iterator)

    考虑 gt gt gt lst iter 1 2 3 gt gt gt next lst 1 gt gt gt next lst 2 因此 正如预期的那样 推进迭代器是通过改变同一对象来处理的 既然如此 我预计 a iter list ra
  • 如何递归地使用JpegTran(命令行)来优化子目录中的所有文件?

    我在多个目录中有照片 我想使用 jpegtran 命令行工具 递归地遍历每一个 优化它 然后保存它 覆盖它 如果它们都在一个文件夹中我使用这个 for JPEG in jpg do jpegtran optimize JPEG gt JPE
  • this.form 和 document.forms 之间的区别

    之间有区别吗this form and document forms document forms 或者说 它们相似吗 这是我为测试差异而编写的代码
  • 如何查询以某些字符开头的内容?

    这是我的代码 SELECT SRV NAME TOT CPU TOT MEM SNAP DATE FROM capacity SRV CAPACITY SEV WHERE SRV NAME in absshs1p AA03server AA
  • 从 MySQL 返回 JSON 和列名

    我使用 PHP 从 MySQL 获取一行 然后使用以下代码将其编码为 JSON jsonData array if mysqli num rows result gt 0 while array mysqli fetch row resul
  • 从命令行设置 HTML 格式

    是否可以使用工具自动格式化 HTML 类似于 ESLint 格式化 JavaScript 的方式 为什么似乎没有很多可定制的选项可以集成到开发流程中 我希望使用从终端运行的命令自动按以下方式格式化 HTML
  • 在 Postman 中访问集合变量

    Feature Postman 在集合中添加了对变量 授权 预请求和测试脚本的支持 从版本 5 4 1 开始 它同时存在于集合和文件夹级别 Use case 假设我想在登录端点被击中时存储刷新令牌 我的测试脚本需要创建 更新 COLLECT
  • 如何防止信用卡号字段被浏览器缓存

    我的网页上有一个包含信用卡号的输入字段 防止浏览器缓存该值的最佳方法是什么 任何解决方案都需要在多种浏览器上运行 放置属性autocomplete off 到你的html表单 例如
  • 如何根据子列表中的值对列表进行排序? [复制]

    这个问题在这里已经有答案了 所以我有一个看起来像这样的列表 example b 1 b 2 a 2 并且需要将其排序为 example b 1 a 2 b 2 IE 按 1 位置中的数字进行数字排序 程序需要识别何时有两个相同的数字 然后按
  • 有没有更有效的方法来纹理圆?

    我正在尝试创建一个随机生成的 行星 圆圈 并且我希望水 土地和树叶的面积由柏林噪声或类似的东西决定 目前我有这个 伪 代码 for int radius 0 radius lt circleRadius radius for float t
  • 如何使用JavaScript在打开模态框时播放视频?

    我一直在为我的网站设置一个视频页面 我正在尝试使用 Javascript 使其变得更加流畅 不幸的是 我完全不擅长 Javascript 好的 这是我的问题 我已经成功地使用 HTML 和 CSS 制作了一个带有打开动画的模态框 现在我想要
  • 具有不同“速度”的 pygame 元素

    我刚刚做了一个太空入侵游戏 东西会掉到地上 你必须避免坠毁 等等 我成功地创建了两个物体同时下落 但我无法让它们以不同的速度执行此操作 这是第一个对象的属性 thing startx random randrange 0 display w
  • 进程挂起从托管代码 pinvoking AmsiScanBuffer

    我正在尝试使用AmsiScanBuffer https msdn microsoft com en us library windows desktop dn889865 v vs 85 aspx来自托管代码 特别是 C 的 Windows
  • 在 CSS 中对齐表单元素

    我是 CSS 新手 并且有一个简单的登录表单 我正在尝试正确对齐 基本上是两列 带有标签和Login按钮位于一列中 文本框位于另一列中 我如何在 CSS 中做到这一点 HTML 代码是
  • 如何获取 UITableViewCell 移动开始和结束的通知?

    我的 iOS 应用程序中有一个 UITableView 会定期刷新 用户还可以随时移动表格视图行 表格视图始终处于编辑模式 我想在用户开始拖动行时停止刷新计时器 并在删除行时再次启动刷新计时器 最后一部分应该很容易moveRowAtInde
  • 使用 Vim 最高效的快捷方式是什么?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我听说过很多关于Vim http www vim org 有利有弊 看来你 作为开发人员 使用
  • 使用 Linq 执行包含多个值的 Contains

    我有一个药物表 我正在寻找某些药物名称 但我需要搜索多个名称 这就是我目前所处的位置 string names new string 2 names 0 apixaban names 1 desirudin var meds from m
  • 错误:AADSTS50058:已发送静默登录请求,但没有用户登录 - 移动 safari 浏览器中的 Angular ADAL 身份验证问题

    我们有一个使用 Angular 7 开发的网站 它使用 Adal Angular4 库进行 Azure Active Directory 身份验证 当在 iPhone 上的 safari 中浏览该网站时 会遇到以下错误 Error AADS
  • 如何在 grails TagLib 单元测试中模拟服务

    我有 TagLib Service 和 TestCase 如下 如何在标签库中模拟服务以从服务中获得预期结果 TagLib class SampleTagLib static namespace sample def baseService
  • 如何删除 QML 对象

    我正在尝试删除 QML 对象并重新创建对象 如下所示 Rectangle property var obj signal videoStopped variant complete function recreate url if obj