在我的栅格绘图程序中,我需要创建一个图层界面,如在Photoshop或Sketchbook Pro中。我阅读了文档,发现我必须使用QTreeView。但是我没有在文档中找到很多关于使用自定义小部件创建QTreeView的信息。所以:
1)如何插入自定义部件到树视图?
QTreeView和QTreeWidget的区别是什么?
QAbstractItemModel和qitemdelegate的区别是什么?
4)有没有例子/文章/指南?
也许我应该用别的东西?
QTreeWidget
是一个类中的模型和视图,它被称为方便视图。它与分隔视图和模型的良好实践相反,可能不应该在文档层概念属于文档处理代码的系统中使用。
QTreeView
只是一个视图,没有任何绑定的模型。当你有一个模型时,你可以在视图上设置它,使视图显示模型。
A QAbstractItemModel
为数据模型。它与视图或委托完全无关——模型完全可以在没有视图的情况下存在并发挥作用。
尽管委托允许您提供所需的自定义小部件,但它的使用可能是不必要的。如果显示的项目具有静态内容,则可以简单地提供QImage
或QPixmap
作为数据。
特别针对您的情况(5):不要使用任何QTreeView
, QStandardItemModel
和其他此类类。如果你需要与小部件交互,如果你需要小部件动画,那么你应该使用简单的QScrollArea
和QVBoxLayout
里面。