作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
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/
我是一名优秀的程序员,十分优秀!