我在本教程之后实现了TreeView,但是我使用了Qt Quick Control(没有.ui文件) . tutorial here . 使用加载文本和TreeView上的显示,它工作正常 . 但我有另一个问题:

我知道一行是TreeItem,模型是从QAbstractItemModel扩展的TreeModel . - 我的TreeView有四列,我使用itemData为TreeItem设置数据,每个itemData有4个元素 .

  • On Value Column(第2列)我想添加动态组件(QComboBox和TextField),它依赖于TreeItem TreeModel的值 . The figure below .

  • 我从.cpp文件中为TreeItem和TreeModel设置数据,并在.qml文件中为TreeView设置模型 .

  • 我有一个带有8个元素的对象(名称,值,要为第2列分配组件的数据,如果有Combobox,则为当前的Combobox索引,data1,...),第二个元素可能是QStringList或QString . 我的TreeItem通过TreeItem(name,value,data1,data2)从objectA获取数据 .

我有3个问题需要解决:

  • 第一个问题,我已将第2列委托给所有ComboBox或所有TextField确定,但我不能将它们混合在一起 . 当TreeItem的值是QStringList时,我想要Combobox的委托,当它是QString时,我想要TextField的委托 . 但是我无法访问返回数据,我不知道我需要在.cpp文件或.qml文件中定义它 . 我知道“ styleData.value " is the value for a cell data, access from .qml file. But I cant to know data Type of " styleData.value ” .

  • 第二个问题,我不知道如何在加载数据上设置Combobox的当前索引的另一个问题 . 例如:TreeItem的值(第二个元素)是:[item1,item2,item3],当前Index在第2项 .

  • 第三个问题,当加载数据时,我更改了ComboBox的数据 . 如何获取TreeItem的当前数据,当前Combobox的索引 .

对不起长期提问,还有很多问题 . 如果你知道我的问题,请帮助我 . 预先感谢 .