Разные Qt :: CheckStateRole для разных представлений? - PullRequest
0 голосов
/ 18 декабря 2011

В настоящее время у меня есть простая настройка, где я поддерживаю список bools, соответствующих каждому элементу в моей ListModel:

http://programmingexamples.net/wiki/Qt/ModelView/StringListModelCheckable

Однако теперь я хочу иметь два таких списка bools, скажем, IsHot и IsLarge. Затем я хочу иметь ListView, который отображает каждую строку с флажком для одного из bool («горячий» вид), и отдельный ListView, который отображает каждую строку с флажком для другого bool («Large» bool). Любые советы о том, как это сделать?

1 Ответ

1 голос
/ 19 декабря 2011

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

В ваших представлениях списка, вызовите QListView::setModelColumn, чтобы установитьстолбец, в котором отображается представление списка.

Если вы хотите синхронизировать прокрутку между списками, вам лучше использовать QTableView, чтобы строки совпадали.


Изменить, чтобы добавитьПодробнее о возврате текста и проверке состояния.

Чтобы вернуть текст и состояние флажка из модели, вы возвращаете разные данные для разных ролей из функции [data] вашей модели..

Из руководства для Qt::ItemDataRole:

Qt::DisplayRole Ключевые данные, которые должны быть представлены в виде текста.(QString) Qt::CheckStateRole Эта роль используется для получения проверенного состояния элемента.(Qt::CheckState)

Оба столбца в вашей модели будут возвращать одинаковые данные (имя) для DisplayRole, но разные данные для CheckStateRole

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...