Название: 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, то стоит посмотреть думаю. Спасибо за наводку. |