Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Endemion1 от Июль 18, 2009, 13:57



Название: QFileSystemModel - дерево каталогов с чекбоксами
Отправлено: Endemion1 от Июль 18, 2009, 13:57
Здравствуйте
Мне нужно отобразить дерево файлов\каталогов с чекбоксами возле каждого элемента. Что я нашел - отнаследоваться от QFileSystemModel, в функции #flags возвратить Qt::ItemIsUserCheckable, и переопределить data() setData() таким образом, чтобы для каждого элемента-узла дерева они сохраняли/считывали флаг bool Checked, таким образом позволяя узнать состояние переключателя. Собственно проблема в хранении этого флага. Логика подсказывает, что обычно такие переменные храняться в структуре элемента, но QFileSystemModel не содержит обычного массива своих элементов. Как я понимаю, нужно переопределить всю реализацию этого контейнера, добавив к нему это поле checked. Может есть способ попроще? Спасибо заранее


Название: Re: QFileSystemModel - дерево каталогов с чекбоксами
Отправлено: pastor от Июль 18, 2009, 17:53
Логика подсказывает, что обычно такие переменные храняться в структуре элемента, но QFileSystemModel не содержит обычного массива своих элементов. Как я понимаю, нужно переопределить всю реализацию этого контейнера, добавив к нему это поле checked. Может есть способ попроще? Спасибо заранее

Прочитай в ассистанте про Qt::ItemDataRole и обрати внимание на Qt::CheckStateRole.

ЗЫ: Qt::ItemDataRole в setData() это 3 параметр; в data() - второй