2017-08-24 67 views
0

我是很新的QML,我苦苦寻找的任何信息,如何使一个简单的方法树模型(虽然水平,而不是垂直):QML树视图

enter image description here

似乎像QML只支持来自模型的列表数据结构。有什么办法可以做到吗?

+0

有[TreeView](https://doc.qt.io/qt-5/qml-qtquick-controls-treeview.html)来显示树木数据。如果你不喜欢,你总是可以使用[QQuickItem](http://doc.qt.io/qt-5/qquickitem.html)或[Canvas](http:// doc.qt。 io/qt-5/qml-qtquick-canvas.html) – folibis

+0

TreeView似乎无法像图片一样呈现模型或渲染模型。如果可能的话,创建一个C++实现是我想要避免的。 – krojew

+0

TreeView能够完全按照你绘制的方式显示数据。你认为这可能是一个问题吗? – folibis

回答

0

自己想出来。诀窍是使用DelegateModel,Repeater和Row/Column布局,而不是TreeView。

  1. 创建一个组件,它将使用DelegateModel显示当前节点。
  2. 使用Repeater创建子对象 - 让组件动态创建自己的另一个实例,将当前节点分配为新构造的DelegateModel的rootIndex,并将其设置为Repeater的模型。
  3. 通过正确使用布局,您可以像附加图像一样精确定位节点。
+0

嗨,我面临完全相同的问题。你能提供一些最低限度的例子吗? –

+1

提供最低限度的示例很难,但我可以向您显示我的结果代码:https://bitbucket.org/krojew/evernus/src/3e92163a5b0c63be1a6046a73ba531a0aa39732e/qml/Industry/Manufacturing/TypeDelegateModel.qml?at=default&fileviewer=file- view-default看起来像这样:https://evernus.com/wp-content/uploads/2017/09/manufacturing3.png – krojew