Russian Qt Forum

Qt => Model-View (MV) => Тема начата: L.Marvell от Май 10, 2007, 12:00



Название: QDirModel & checkable items
Отправлено: L.Marvell от Май 10, 2007, 12:00
Подскажите есть ли способ сделать "итемы" у QDirModel+QTreeView checkable или нужно писать свою модель?


Название: QDirModel & checkable items
Отправлено: bigirbis от Май 10, 2007, 12:24
Тут либо наследоваться, либо писать прокси-модель


Название: QDirModel & checkable items
Отправлено: L.Marvell от Май 10, 2007, 16:06
Спасибо. Будем разбираться дальше.

добавлено спустя 3 часа 19 минут:

 Побороздив по просторам инета набрел еще на примерно такую же проблему, где советуют следующее:
Make sure your model returns Qt::ItemIsUserCheckable flag for indexes you want to be checkable and both data() and setData() handle role Qt::CheckStateRole.

Унаследовался от QDirModel, переопределил flags(), который дополнительно возвращает Qt::ItemIsUserCheckable, но вот как переопределить data() никак не пойму... В асистенте есть статейка Model Subclassing Reference, но там просто сказано, что нужно переопределять, а вот как...

З.Ы. Просьба сильно не ругать, модели оказались для меня весьма твердым камушком...

добавлено спустя 13 минут:

 Либо я неправильно понял, что нужно сделать...


Название: QDirModel & checkable items
Отправлено: Emc от Май 11, 2007, 12:42
работать c QDirModel не очень хорошо - все таки она выполняет свои специфические функции. Лучше взять QStandardItemModel где флаги item'ов полностью под твоим контролем. А получить список item'oв в директории просто - QDir.entryInfoList рулит


Название: QDirModel & checkable items
Отправлено: zlatko от Май 11, 2007, 13:25
Посмотри в кт примеры. Там есть пример реализации деревовидной модели, и там видно как и чего переопределять...
Ну и конечно ты можеш вообше не использовать модель а создавать елементи того же tree view через QTreeWidgetItem


Название: QDirModel & checkable items
Отправлено: L.Marvell от Май 11, 2007, 19:34
Цитата: "Emc"
работать c QDirModel не очень хорошо - все таки она выполняет свои специфические функции. Лучше взять QStandardItemModel где флаги item'ов полностью под твоим контролем. А получить список item'oв в директории просто - QDir.entryInfoList рулит

Т.е. получается, что все таки лучше писать свою модель. Вот про QStandardItemModel еще не читал, надо бы оценить.

добавлено спустя 4 минуты:

 
Цитата: "zlatko"
Посмотри в кт примеры. Там есть пример реализации деревовидной модели, и там видно как и чего переопределять...
Ну и конечно ты можеш вообше не использовать модель а создавать елементи того же tree view через QTreeWidgetItem

Привет zlatko. Давно не было видно ;)
Пример смотрел, пока все равно тяжко разобраться с системой моделей. Но все же с моделью мне кажется будет лучше, чем через QTreeWidgetItem.


Название: QDirModel & checkable items
Отправлено: Emc от Май 11, 2007, 20:24
Ну если честно не вижу особой разницы между использованием QStandardItemModel и QTreeWidget - буквально на днях закончил переписывать свой старый проект с использованием модели - надо сказать кода получилось немного больше при той же функциональности. Единственная действительно полезная вещь в модели - это ее взаимодействие с QSortFilterProxyModel - вот тут действительно можно добиться забавных результатов. Кстати если все же выберешь модель - советую переходить на версию qt 4.3.0 - наконец-то вышел rc1 до этого сидел на snapshot'ах c версией 4.2 практически невозможно работать - постоянные вылеты (хуже всего 4.2.3 :()


Название: QDirModel & checkable items
Отправлено: L.Marvell от Май 11, 2007, 20:45
Цитата: "Emc"
Ну если честно не вижу особой разницы между использованием QStandardItemModel и QTreeWidget - буквально на днях закончил переписывать свой старый проект с использованием модели - надо сказать кода получилось немного больше при той же функциональности. Единственная действительно полезная вещь в модели - это ее взаимодействие с QSortFilterProxyModel - вот тут действительно можно добиться забавных результатов. Кстати если все же выберешь модель - советую переходить на версию qt 4.3.0 - наконец-то вышел rc1 до этого сидел на snapshot'ах c версией 4.2 практически невозможно работать - постоянные вылеты (хуже всего 4.2.3 :()

Собственно сортировка не нужна. Но вот каким путем делать подумать есть над чем (спасибо откликнувшимся, всем вместе и каждому отдельно).
А вот на счет 4.2.3 странно, пока не заметил, но если уже есть 4.3.0 рц1, то стоит посмотреть думаю. Спасибо за наводку.