Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QML中是否有来自TreeView的本机数据模型?_Qt_Qml_Qtquick2_Qtquickcontrols - Fatal编程技术网

Qt QML中是否有来自TreeView的本机数据模型?

Qt QML中是否有来自TreeView的本机数据模型?,qt,qml,qtquick2,qtquickcontrols,Qt,Qml,Qtquick2,Qtquickcontrols,QT文档暗示QabstracteModel的任何实现都可以用于TreeView 这些模型通常是C++的,目前不方便。p> 那么,是否有一个可以在treeview中使用的本地QML模型 可以从C++中设置QStand模型,并在QML?< P>中使用该模型,给出了如何使用它来树视图:< /P>的例子。 QStandardItemModel model; QStandardItem *parentItem = model.invisibleRootItem(); for (int i = 0; i &

QT文档暗示QabstracteModel的任何实现都可以用于TreeView

这些模型通常是C++的,目前不方便。p> 那么,是否有一个可以在treeview中使用的本地QML模型

可以从C++中设置QStand模型,并在QML?

< P>中使用该模型,给出了如何使用它来树视图:< /P>的例子。
QStandardItemModel model;
QStandardItem *parentItem = model.invisibleRootItem();
for (int i = 0; i < 4; ++i) {
    QStandardItem *item = new QStandardItem(QString("item %0").arg(i));
    parentItem->appendRow(item);
    parentItem = item;
}
您还需要模型中的根项来显示树视图中的所有内容:

view.rootContext.setContextProperty("root", model.indexFromItem(model.invisibleRootItem()));
现在,您可以将其添加到QML TreeView中,如下所示:

  TreeView{
    model: treeViewModel
    rootItem: root

    TableViewColumn {
        role: "display" // is role 0
    }
}
那么,是否有一个可以在treeview中使用的本地QML模型

< 2018】仍然是“否”。当前的QML TeeVIEW示例仍然是只读静态C++模型,需要大量手工编码来使用它们来实现任何动态。 我发现了两个使用QML ListModel和Javascript数组的定制树视图的纯QML示例,例如:

(一)

(二) 来自Eric Gregory,展示拖放功能。我对其进行了扩展,使其可编辑,并通过JSON字符串保存/加载结构:

据我所知,没有。但这可能会帮助您:(尤其是指向的链接)同时记住对它的注释。因为现在QML没有原生树模型,您需要使用
QStandardItemModel
自己实现它。这是一个简单的例子。
  TreeView{
    model: treeViewModel
    rootItem: root

    TableViewColumn {
        role: "display" // is role 0
    }
}