Russian Qt Forum

Qt => Qt Quick => Тема начата: BlackSoul от Май 20, 2012, 14:38



Название: использование QStandardItemModel в qml
Отправлено: BlackSoul от Май 20, 2012, 14:38
Доброго времени суток всем.
возникла такая проблемка:

в С++ создается модель QStandardItemModel.
хочется отобразить её через qml.

в qml я пишу:
Код:
property QtObject data_model: controller.getInstance( "main_window" ).model() // контоллер - это объект, который возвращает указатель на с++ объект

Component
{
      id: data_delegate
      Text
     {
           text: display
     }
}

ListView
{
     id: data_view
     model: data_model
     delegate: data_delegate
}

этот код отлично отображает значение первой колонки модели, но что делать, если в моделе 2+ колонок - непонятно.
в доках есть примеры с наследованием модели и указанием roleNames, но как-то не хочется постоянно наследоваться =(

можно ли как-нибудь добраться из делегата к остальным колонкам?


Название: Re: использование QStandardItemModel в qml
Отправлено: Странник от Май 21, 2012, 02:15
когда я последний раз касался этого вопроса, другого способа не было. интересно, с чем связаны такие костыли при реализации.


Название: Re: использование QStandardItemModel в qml
Отправлено: BlackSoul от Май 21, 2012, 07:59
костыли связаны с тем, что 95% всего кода написано на С++. на qml только отображение и интерфейсная логика


Название: Re: использование QStandardItemModel в qml
Отправлено: Patrin Andrey от Май 21, 2012, 08:56
Как сделать такое для QStandardItemModel без использования roleNames х.з.
Можно хранить объекты в QList<QObject*> someName и экспортировать через
setContextProperty("modelName", QVariant::fromValue(someName))
тогда в qml будет возможность обращаться к свойствам элементов по имени.
Однако, чтобы обновить данные в такой модели, придётся снова делать setContextProperty. Не советую использовать этот метод для динамически меняющижся списков.


Название: Re: использование QStandardItemModel в qml
Отправлено: BlackSoul от Май 21, 2012, 09:10
тогда этот вариант тоже не подходит. т.к. следующая задача - синхронизация =(


Название: Re: использование QStandardItemModel в qml
Отправлено: BlackSoul от Май 23, 2012, 08:52
Всё равно пришлось наследоваться =(