c++ - Qt - 首选使用什么 - 小部件或 View ? (树、表、列表)

标签 c++ qt model-view-controller

我开始使用带有 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/

相关文章:

c++ - Unix <-> Windows C++ 开发工具

c++ - 初始化列表中的 QString 导致访问冲突。这里出了什么问题?

jsp - Java EE Web开发,我从哪里开始?我需要什么技能?

asp.net-mvc-3 - 使用 jquery 将模型从 View 传递到 Controller

javascript - MVC Bootstrap Accordion - 使用 JavaScript 确定打开还是关闭

android - 将 Qt 与 MAPI 绑定(bind)

c++ - 在 C++ 中使用指针列表,(继承还是性能?)

c++ - 为什么要在 C++ 程序中创建 abc.h 和 abc.cpp 文件?

Mysql查询在qt中不起作用

c++ - Q无显示应用