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