
QListView Модель и Делегат. - Работа с моделями в Qt для отображения данных в виджетах. Часть 4
Сегодня мы рассмотрим новый виджет QListView. Он может работать в двух режимах, в первом это обычный список, во втором - список иконок, аналогичный тому, что используется в проводнике Windows, для отображения файлов и папок.
В этой статье мы рассмотрим работу QListView в режиме списка.
Чтобы сэкономить время, мы будем использовать проект из предыдущей статьи.
Просто переименуйте папку с проектом в QLitsView и файл из QComboBoxIcons.pro в QLitsView.pro
Изменим главную форму, удалим QComboBox и добавим QListView.
Разместим кнопки снизу от списка. У нас получится:
В реализации главной формы поменяем this->ui->comboBox на this->ui->listView
В методе on_pushButton_2_clicked() изменим единственную строку на:
model->update(ui->listView->currentIndex().row(), CountryFlag(66, "Japan", "japan.png"));
Обратите внимание, в QListView метод currentIndex() возвращает экземпляр класса QModelIndex, поэтому, чтобы получить текущую стоку, мы используем метод row().
Запускаем и пробуем как работают кнопки.
На этом всё, как видите уже созданная модель может использоваться с разными виджетами.
Заключение
Сегодня мы рассмотрели использование Модели и Делегата для вывода строк в виджете QListView.
Благодаря архитектуре Model/View, просто заменив один компонент другим, мы сэкономили много времени.
Код проекта вы можете найти на GitFlic.
Комментарии
понятно
Добавить комментарий