Заполнение списка комбинированных списков - PullRequest
0 голосов
/ 17 мая 2018

Обновляя уже существующее приложение, я пытаюсь добавить комбинированный список в каждую строку автоматически сгенерированного диалога.Диалог получит свои данные из-за пределов 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 голосов
/ 17 мая 2018

Я предлагаю переместить объявление 'comboboxModel' внутри делегата, чтобы создать новую модель для каждого комбинированного списка.

...