Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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中添加QComboBox和TextField?_Qt_Delegates_Treeview_Qml_Qcombobox - Fatal编程技术网

Qt 如何使用委托QML在TreeView中添加QComboBox和TextField?

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

在本教程之后,我实现了TreeView,但我实现了Qt Quick Control(没有.ui文件)。通过加载文本并在TreeView上显示,它可以正常工作。但我还有一个问题:

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

  • 在值列(第2列)上,我想添加动态组件(QComboBox和TextField),它取决于TreeItem和TreeModel的值

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

    • 我有一个objectA,有8个元素(名称、值、为第2列分配组件的数据、Combobox的当前索引(如果有Combobox)、data1,…),第二个元素可能是QStringList或QString。My TreeItem使用TreeItem(名称、值、数据1、数据2)从objectA获取数据
我有3个问题需要解决:

  • 第一个问题,我已经将第2列委托给所有组合框或所有文本字段ok,但我无法将它们混合在一起。当TreeItem的值为QStringList时,我希望Combobox为delegate,当它为QString时,我希望TextField为delegate。但是我无法访问返回数据,我不知道需要在.cpp文件或.qml文件中定义它。我知道“styleData.value”是从.qml文件访问的单元格数据的值。但我无法知道“样式数据.value”的数据类型
  • 第二个问题,另一个我不知道如何在加载数据时为Combobox设置当前索引的问题。例如:TreeItem的值(第二个元素)是:[item1,item2,item3],当前索引位于item2
  • 第三个问题,当加载数据时,我更改ComboBox的数据。如何获取树元素的当前数据,组合框的当前索引
很抱歉问了这么长的问题,还有很多问题。 如果你知道我有什么问题,请帮助我。 先谢谢你