【问题标题】:Qt proxy model usage exampleQt代理模型使用示例
【发布时间】:2012-10-07 18:36:06
【问题描述】:

我正在使用 Qt 4 的 QFileSystemModelQTreeView。我正在编写一个类似于文件管理器的 Windows 资源管理器,并希望创建一个更类似于 Windows 的树,其中树包含一些快捷路径,如桌面、我的文档。 我唯一想要的就是让一棵树看起来像这样:

  • 我的电脑
    • 桌面
    • 我的文档
    • C:\
    • D:\
    • ...

听说用QAbstractProxyModel可以实现。 有人用过QAbstractProxyModel 并让它工作吗?如果是,请提供任何适当的示例。提前致谢。

这个问题和How to add custom row in QFileSystemModel?一样

【问题讨论】:

  • 我认为您将 QGraphicsProxyWidget 与 QAbstractProxyModel 混淆了
  • 现在正如你提到的,我提醒它应该是QIdentityProxyModelQAbstractProxyModel,甚至同时是两者。有没有办法改标题?
  • 所以本质上你希望在树中有“别名”,其中一个项目实际上指向另一个项目。我从来没有这样做过,也帮不了你,但我认为QAbstractItemModel 应该可以做到这一点我认为QIdentityProxyModel 是错误的。

标签: c++ qt qtreeview qfilesystemmodel


【解决方案1】:

您能否详细说明 QTreeView 中缺少什么来处理您的示例树?

如何使用像http://www.java2s.com/Code/Cpp/Qt/QTreeViewdemoandQStandardItem.htm 这样的简单 QTreeView 示例作为起点来获取所需内容?

【讨论】:

  • 在示例中,您提供他们使用QStandardItemModel,因此您可以根据需要添加到标准模型中。但是QFileSystemModel 从您的文件系统中获取它的内容,并且默认情况下它只包含 Drives(在 Windows 中),所以它看起来像:C:\, D:\, .... 事情我需要的是 - 在这里添加两件事:桌面和我的文档的快捷方式。正如我之前所说,这似乎可以使用QGraphicsProxyWidget 来实现,但我无法让它工作=(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-08
相关资源
最近更新 更多