Qt 如何使用委托QML在TreeView中添加QComboBox和TextField?
在本教程之后,我实现了TreeView,但我实现了Qt Quick Control(没有.ui文件)。通过加载文本并在TreeView上显示,它可以正常工作。但我还有一个问题: 我知道一行是一个TreeItem,模型是TreeModel,它是QAbstractItemModel的扩展。 -我的TreeView有四列,我用它的itemData为TreeItem设置数据,每个itemData有4个元素Qt 如何使用委托QML在TreeView中添加QComboBox和TextField?,qt,delegates,treeview,qml,qcombobox,Qt,Delegates,Treeview,Qml,Qcombobox,在本教程之后,我实现了TreeView,但我实现了Qt Quick Control(没有.ui文件)。通过加载文本并在TreeView上显示,它可以正常工作。但我还有一个问题: 我知道一行是一个TreeItem,模型是TreeModel,它是QAbstractItemModel的扩展。 -我的TreeView有四列,我用它的itemData为TreeItem设置数据,每个itemData有4个元素 在值列(第2列)上,我想添加动态组件(QComboBox和TextField),它取决于Tree
- 在值列(第2列)上,我想添加动态组件(QComboBox和TextField),它取决于TreeItem和TreeModel的值
- 我从.cpp文件中为TreeItem和TreeModel设置数据,并在.qml文件中为TreeView设置模型
- 我有一个objectA,有8个元素(名称、值、为第2列分配组件的数据、Combobox的当前索引(如果有Combobox)、data1,…),第二个元素可能是QStringList或QString。My TreeItem使用TreeItem(名称、值、数据1、数据2)从objectA获取数据
- 第一个问题,我已经将第2列委托给所有组合框或所有文本字段ok,但我无法将它们混合在一起。当TreeItem的值为QStringList时,我希望Combobox为delegate,当它为QString时,我希望TextField为delegate。但是我无法访问返回数据,我不知道需要在.cpp文件或.qml文件中定义它。我知道“styleData.value”是从.qml文件访问的单元格数据的值。但我无法知道“样式数据.value”的数据类型
- 第二个问题,另一个我不知道如何在加载数据时为Combobox设置当前索引的问题。例如:TreeItem的值(第二个元素)是:[item1,item2,item3],当前索引位于item2
- 第三个问题,当加载数据时,我更改ComboBox的数据。如何获取树元素的当前数据,组合框的当前索引