一个简单的问题,(希望有一个简单的答案)。
默认情况下,QTreeView 在获取要显示的行时会将 Qt.DisplayRole 传递给模型的数据函数。 但是如果我想传递“MyAwesomeTreeDisplayRole”而不是 Qt.DisplayRole,我需要做什么?
我似乎找不到任何关于 View 决定在何处使用 displayrole 或如何覆盖它的信息。
就在你问我为什么要做这么糟糕的事情之前..
基本上,我的 QAbstractItemModel 旨在可用于 TreeView (1 列)和 TableView (多列,基于父级)。
对两种类型的 View 使用相同的 DisplayRole 并没有真正起作用,因为那时我被迫为两者返回相同的数据。当我想返回几列的串联时,这导致我只能看到 TreeView 中的第一列。
我认为最简单的方法是只使用自定义角色(TreeDisplayRole 和 TableDisplayRole)。
提前致谢。
请您参考如下方法:
我不知道,如何在python , 但你必须创建你的 own delegate渲染项目数据。委托(delegate)实际上是对象,它从索引请求任何数据并呈现它
请注意,在常见情况下 QTreeView 能够显示多列,你应该只有columnCount为顶级索引正确设置in
