gpt4 book ai didi

c++ - 如何从 QAbstractItemView 中删除小部件

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:28:49 24 4
gpt4 key购买 nike

QAbstractItemView 有 `setIndexWidget但没有“删除”功能。

我试图通过存储传递给 QAbstractItemView 的小部件来解决这个问题,并在我想从中删除它们时 hide/delete 它们以 RuntimeError: wrapped C/C++ object of %S has been deleted 错误结束的 View 。我假设这是由于小部件的所有权被传递给视口(viewport),正如文档所说:

Sets the given widget on the item at the given index, passing the ownership of the widget to the viewport.

如何删除小部件?

我正在使用 PyQt,但我认为对于 C++PySide 也是有效的问题。

最佳答案

QAbstractItemView基于模型的 View 的基础。这意味着您应该从模型中移除项目,而不是从 View 中移除项目。然后模型负责通过适当的信号通知 View 。

您可能对 QAbstractItemModel 感兴趣方法,例如 removeRow。如果您自己实现模型,则您有责任实现它们并自行发出信号。

关于c++ - 如何从 QAbstractItemView 中删除小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15128282/

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