我开始使用带有 QStandardItemModel 和一些 View 的 Qt 模型 View 系统。但后来我注意到还有一些小部件——树、表、列表,它们恰好与 View 的使用几乎相同。我阅读了 Qt 文档 about it诚实不明白我们还需要什么小部件,为什么 View 还不够......
最佳答案
Q*Widgets 易于使用,适用于简单的用例。当您必须在之后查找和更新项目时,它们可能会变得乏味处理。然后,一旦您了解了这个概念,编写自定义模型通常会更容易。还有很多元素,自定义模型会有更好的性能。
结合 View 的自定义模型更加灵活:它们允许使用代理模型,尤其是 QSortFilterProxyModel ,这使得基本的排序和过滤变得非常简单。
如果自定义模型看起来太令人生畏(它们可能会变得复杂,尤其是对于树模型而言)并且您仍然需要 View 和代理的灵 active ,我建议查看 QStandardItemModel :它为您提供了一个类似于 Q*Widget 的基于项目的 API,但可以与不同的代理和 View 自由组合。如果您在某个时候决定使用自定义模型,只需替换模型,您就根本没有触摸代理和 View 。
关于c++ - Qt - 首选使用什么 - 小部件或 View ? (树、表、列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14526881/