Qt raw 与 std::shared_ptr

2024-02-22

我注意到,当在 QT 中用 share_ptr 替换原始指针时,我的代码不再起作用。 例如,如果不是

 QTreeWidgetItem* vItem(new QTreeWidgetItem(ItemTitle));

I use

 std::shared_ptr<QTreeWidgetItem> vItem(new QTreeWidgetItem(ItemTitle));

然后,要么程序崩溃,要么什么都不做(即使我使用 .get() 函数来获取 来自我代码中稍后共享的原始指针)。有谁知道可能是什么原因?


对 Qt 模型项使用共享指针会导致所有权冲突:QTreeWidget取得任何所有权QTreeWidgetItem你传递给它。std::shared_ptr也拥有它的物品。两者都假设他们可以自己删除该项目,并且没有其他人会在他们背后删除该项目。

在这种情况下,Qt 获得指针的所有权(其他示例:父级QObject取得其孩子的所有权),不能使用std::shared_ptr/QSharedPointer同时。std::shared_ptr仅在使用时效果良好std::shared_ptr and std::weak_ptr专门用于保存指向该特定对象的指针。

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

Qt raw 与 std::shared_ptr 的相关文章

随机推荐

  • 使用 jQuery.extend 覆盖函数的原因可能是什么?

    我正在寻找扩展引导插件的正确方法 并找到了这个答案 https stackoverflow com a 12689534 1276032 https stackoverflow com a 12689534 1276032 让我烦恼的是最后
  • OpenCV,与教程中的代码进行特征匹配

    我复制了代码与 FLANN 的特征匹配 http docs opencv org doc tutorials features2d feature flann matcher feature flann matcher html featu
  • Jquery 移动:ui-state=dialog

    我正在使用 JQuery mobile 作为用户菜单列表 但它似乎保存了按下的按钮链接 ui state dialog 当我使用网络浏览器上的后退按钮时 这会干扰导航 如何删除添加到 URL 的 ui state dialog 例子 htt
  • 如何计算集群所需的zookeeper服务器数量?

    有没有公 式可以计算我需要的zookeeper服务器数量 假设一个集群可能有 50 500 或 5000 个服务器在运行 我如何将这些数字转换为我想要启动的 Zookeeper 服务器数量 换句话说 对 zk 服务器可以处理的工作负载有什么
  • 无法导入 scala.reflect.runtime.universe

    我想按照 scala 2 10 2 中的示例来尝试反射本教程 http docs scala lang org overviews reflection environment universes mirrors html 当我启动 sbt
  • 快速解析对象内的json数组

    这是一个样本json我必须在我的项目中实现的代码 请告诉我如何编写代码 我写了很多次代码 这根本不是工作 所以我希望请提供完整的例子 在这里我可以看到 首先有一个对象 接下来有一个多个对象 最后是一个对象内的数组 请查看详情 Activit
  • Tkinter Canvas 将项目移动到顶层

    我有一个 Tkinter Canvas 小部件 Python 2 7 而不是 3 在这个 Canvas 上我有不同的项目 如果我创建一个与旧项目重叠的新项目 它将位于前面 现在 我如何才能将旧项目移动到新创建的项目前面 甚至移动到画布上所有
  • jQuery 从链接获取带有变量的 url 并通过 Ajax 发送它

    我可以使用此链接通过 GET 将产品添加到购物车 div a href Add to Cart a div 我想使用 jQuery Ajax 保持在同一页面上 如果启用了 JS 我已经写出了以下内容 但当然它不起作用 有人可以看看出了什么问
  • C ++,stl,map如何按值而不是键排序

    我想仅使用值而不是键对地图容器中的元素进行排序 怎么做 我知道地图可以按键值排序 但反之亦然怎么办 我在 stackoverflow 中发现了同样的问题 我喜欢这个solution https stackoverflow com a 269
  • 什么时候适合使用 df.value_counts() vs df.groupby('...').count()?

    我听说 Pandas 通常有多种方法可以做同样的事情 但我想知道 如果我尝试按特定列中的值对数据进行分组并计算具有该值的项目数 那么什么时候使用才有意义df groupby colA count 什么时候使用才有意义df colA valu
  • 如何使用 C# Entity Framework 5 DbGeography 空间数据纠正多边形环方向

    我正在使用新的实体框架 5 使用空间数据类型 DbGeography 作为我的模型的一部分 用于在一个实例中存储点 在另一个实例中存储多边形 设置 POLYGON 的值时 所有保存都不会出现错误 但是只有当我按顺时针顺序在地图上绘制多边形时
  • 使用AJAX将网页内容加载到DIV中

    我有一个文本字段 当我在文本字段中输入内容时 我想将内容加载到下面的 DIV 中 这就是我的等效代码
  • 当我右键单击图标时出现无限 gtk 警告

    由此tuto http zetcode com tutorials gtktutorial firstprograms include
  • 编程中死锁问题有多常见?

    我用多种语言进行编程 但我不知道代码中是否存在死锁 我认为这意味着它不会发生 这种情况经常发生吗 在编程中 not在数据库中 足以让我担心它吗 如果满足以下两个条件 则可能会出现死锁 您有多个线程 并且它们争用多个资源 你写多线程代码吗 您
  • Gtk Ckipboard:使用自定义 URI 方案从源粘贴文件

    我正在尝试编写一个 GTK C 应用程序 将一些文件放在 Gtk 剪贴板上 以便使用 Nautilus 的用户能够粘贴它们 有一个好的stackoverflow 上 Gtk 剪贴板本地文件复制和粘贴的示例 https stackoverfl
  • AngularJS 下拉列表不显示所选值

    在角度下拉列表中显示所选值时面临问题 当我这样给予时它就起作用了 scope selectedItem scope items 1 不起作用 如果我直接给出该值 scope selectedItem name two age 27 HTML
  • ul in ul 的正确语义

    我在写信ul inside ul制作手风琴类型的菜单 但是当我在 html 验证器中检查下面的代码时 它给了我这些错误 Element ul not allowed as child of element ul in this contex
  • 记录可以用作对象的属性吗?

    我想将记录作为对象的属性 问题是 当我更改该记录的某个字段时 该对象不知道这一更改 type TMyRecord record SomeField Integer end TMyObject class TObject private FS
  • 为什么使用 Nsurl 请求不断告诉我重命名为“init(url)”

    还尝试添加检测视频并将其下载到应用程序的功能 简而言之 这是一个基于网络的应用程序 用于下载任何类型的视频 并能够将其存储在应用程序中 import UIKit class ViewController UIViewController I
  • Qt raw 与 std::shared_ptr

    我注意到 当在 QT 中用 share ptr 替换原始指针时 我的代码不再起作用 例如 如果不是 QTreeWidgetItem vItem new QTreeWidgetItem ItemTitle I use std shared p