Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Larry от Март 15, 2016, 22:13



Название: [РЕШЕНО]Виджет вместо итема QListView
Отправлено: Larry от Март 15, 2016, 22:13
Добрый вечер.
Есть необходимость вставить виджеты вместо итемов, в частности буду лабели, иконки и combobox. Редактирования не будет, только отображение различной информации (статусов объектов). Как это лучше сделать? Через делегаты? Но вроде бы делегаты используются для редактирования...Подскажите как лучше. Спасибо.


Название: Re: Виджет вместо итема QListView
Отправлено: AlekseyK от Март 16, 2016, 03:47
Глянь QListWidget::setItemWidget(QListWidgetItem * item, QWidget * widget) - похоже это то, что тебе нужно. Ещё можно посмотреть на реализацию того же самого через QTreeWidget:
  • www.fancyaddress.com/blog/qt-2/create-something-like-the-widget-box-as-in-the-qt-designer/
  • http://stackoverflow.com/a/35999430/630169


Название: Re: Виджет вместо итема QListView
Отправлено: Larry от Март 16, 2016, 10:10
Спасибо. Я тоже склоняюсь в QListWidget.


Название: Re: Виджет вместо итема QListView
Отправлено: kambala от Март 16, 2016, 13:03
делегаты можно и для статического контента — просто отрисуешь свои данные (или можно отрисовать прямо виджет)

а зачем combobox для статического контента?..


Название: Re: Виджет вместо итема QListView
Отправлено: Larry от Март 16, 2016, 13:38
Это не статический контент, там постоянно будут меняться состояния, т.е. иконки будут меняться, а в combobox будут выбираться операции.


Название: Re: Виджет вместо итема QListView
Отправлено: Bepec от Март 16, 2016, 13:57
По сути нет разницы, можно отрисовывать самому, можно напихать виджетов. Другой вопрос что отрисовка менее затратна, а виджеты при кол-ве записей > 500 будут подтормаживать скорее всего.


Название: Re: Виджет вместо итема QListView
Отправлено: Larry от Март 16, 2016, 14:31
Больше 500 и не будет, на данный момент и двухсот не наберется.


Название: Re: Виджет вместо итема QListView
Отправлено: Larry от Март 16, 2016, 18:43
Решил все-таки использовать QListWidget.