Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Новая статья - "QListView - как реализовать множественный выбор"

1
28 октября 2010 года
kot_
7.3K / / 20.01.2000
Цитата:

Компонент, о котором пойдет в этой статье, используется часто в самых различных ситуациях. И это в принципе не удивительно, QListView во первых позволяет удобно отображать самые разные типы данных, во вторых - в полной мере реализует принцип Model-View (модель-представление).

Но начинающих часто может поставить в тупик - как реализовать множественный выбор в данном компоненте (да и не только в нем - данный подход достаточно универсален для всех компонентов, которые наследуют от QAbstractItemView)?
Сейчас я попытаюсь показать - как это можно сделать.
Для начала предположим, что у нас на форме находится компонент типа QListView, назовем его lwMain. Данный компонент отображает данные из модели QSqlQueryModel, которая получает из базы два поля - идентификатор и имя объекта. Наша задача - получить список выбранных идентификаторов и имен - и передать их далее.
Для реализации множественного выбора необходимо установить поле selectionMode в значение QAbstractItemView::MultiSelection либо QAbstractItemView::ExtendedSelection. Эти два типа отличаются тем, что в последнем случае множественный выбор происходит только при зажатой клавише Shift либо Ctrl


"QListView - как реализовать множественный выбор" - читать далее
Если есть вопросы - задавайте.

11
28 октября 2010 года
oxotnik333
2.9K / / 03.08.2007
Я не допонял, в этой статье есть какая нибудь "фишка", того что не описано/коряво описано в документации, или же это просто "для чайников"?
1
28 октября 2010 года
kot_
7.3K / / 20.01.2000
Я, например, не нашел в документации внятного примера по данной теме. У Бланшет - вроде тоже четкого описания нет. У Шлее - не моу посмотреть - так как под рукой нет. Поэтому написал для своих учеников данную статью - вряд ли она уж совсем для чайников.
11
28 октября 2010 года
oxotnik333
2.9K / / 03.08.2007
Фишка заключается в том, что напрямую из QListView нельзя получить выделенные позиции - QListView::selectedIndexes () является protected, и для доступа к ним надо обращаться к QItemSelectionModel, а из нее уже брать selectedIndexes().
В документации с наскока это сложно найти.
PS: может пора уже FAQ по QT на форуме организовать?
1
28 октября 2010 года
kot_
7.3K / / 20.01.2000
Ну так в статье собственно и рассказано - как это сделать :)
11
28 октября 2010 года
oxotnik333
2.9K / / 03.08.2007
Цитата: kot_
Ну так в статье собственно и рассказано - как это сделать :)


Акцента нет, на то что я описал выше, поэтому и не сразу понял, в чем прикол и полезность статьи.

1
28 октября 2010 года
kot_
7.3K / / 20.01.2000
Прикалываешься?
Цитата:

Для того, что бы получить список выбранных строк в компоненте необходимо обратиться к методу selectionModel(), возвращающий указатель на модель данных для выбранных строк QItemSelectionModel*, которая, в свою очередь, имеет метод selectedIndexes(). Как понятно из названия, этот метод возвращает QModelIndexList - список индексов, который можно использовать для доступа к выделенным данным.


куда еще акценты делать? :)

11
28 октября 2010 года
oxotnik333
2.9K / / 03.08.2007
Цитата: kot_
Прикалываешься?

куда еще акценты делать? :)


значит я невнимательно читал, сорри
Хотя, для таких как я, которые не любят много читать, можно было б текста поменьше, наверно тогда б заметил.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог