填写组合框列表

时间:2018-05-17 12:32:00

标签: model qml

更新现有的应用程序,我尝试将组合框添加到自动生成的对话框的每一行。 该对话框将从外部QML接收其数据,行数可能不同。

代码基本上看起来像

{
  contentItem: Column
  Repeater
  {
     model: valueModel
     delegate: Row
     {

       function fillComboBox()
       {
          var choices = ChoiceListElement.choices;
          if(typeof choices !== "undefined")
          {
            for(var i = 0; i < choices.length; i++)
            {
               comboboxModel.append({text: choices[i]});
            }
         }
       }

       Item
       {
              Component.onCompleted:
              {
                 fillComboBox();
              }
       }
       function format()
       {
          var formatted_string = name;
          return formatted_string;
       }
       Text
       {
         text: format()
       }
       ComboBox
       {
         id: combo
         width: 50
         model: comboboxModel
       }
     }
  }
ListModel
{
    id: comboboxModel
}

根据我的要求,每行有一个组合框。 但是,所有组合框似乎都有相同的内容,可能是因为每个组合都采用相同的模型。

我如何为每行分配一个模型?

期望的:

content Combobox 1:
 * option A
 * option B

content Combobox 2:
 * option C
 * option D

有关于此的任何想法吗?

提前致谢!

迈克尔

更新:

  • 上面代码中的固定代理,已经如上原始代码所示
  • 添加了代码以显示如何填充组合框模型。

1 个答案:

答案 0 :(得分:0)

我建议移动&#39; comboboxModel&#39;在委托内部为每个组合框创建新模型。