Название: Как раскрасить ветки в QTreeView? Отправлено: xintrea от Август 30, 2008, 23:40 Возник вопрос - как раскрасить ветки в QTreeView? Нужен хоть какой механизм - от возможности вывода текста ветки в гипертекстовой разметке (сейчас - разметка лезет в текст ветки) до установки какого-то свойства конкретному item-у.
Куды копать надо? Поискал, внятного ответа не нашел. Вроде как народ пользуется paintCell(), но этот механизм работает в Qt3 а не в Qt4, и к тому же для объекта TreeView такой метод вообще не определен, только для ListView. Кто что может посоветовать? Название: Re: Как раскрасить ветки в QTreeView? Отправлено: spirit от Август 31, 2008, 11:23 делегат можно свой сделать, там-то есть метод
Код: void QItemDelegate::paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const [virtual] http://doc.trolltech.com/qq/qq24-delegates.html (http://doc.trolltech.com/qq/qq24-delegates.html) Название: Re: Как раскрасить ветки в QTreeView? Отправлено: EhTemka от Сентябрь 01, 2008, 15:05 Если тебе просто раскрасить надо, есть еще роли в модели, такие как Qt::BackgroundRole и Qt::ForegroundRole. При заполнении модели задаешь цвет итема с их помощью
например : Код: QAbstractItemModel::setData(index, QColor(Qt::red), Qt::BackgroundRole); Название: Re: Как раскрасить ветки в QTreeView? Отправлено: xintrea от Сентябрь 07, 2008, 21:50 Если тебе просто раскрасить надо, есть еще роли в модели, такие как Qt::BackgroundRole и Qt::ForegroundRole. При заполнении модели задаешь цвет итема с их помощью Да, спасибо, я именно так и сделал. Это гораздо прощще чем с делегатами работать. :) Название: Re: Как раскрасить ветки в QTreeView? Отправлено: kadr от Сентябрь 17, 2010, 14:11 Народ, если используется не QAbstractItemModel а QFileSystemModel, то
QFileSystemModel::setData(index, QColor(Qt::red), Qt::BackgroundRole); QFileSystemModel::setData(index, QColor(Qt::green), Qt::ForegroundRole); не катят, ничего не происходит! Может подскажите как поменять цвет текста в итеме? Название: Re: Как раскрасить ветки в QTreeView? Отправлено: Kolobok от Сентябрь 17, 2010, 14:53 QFileSystemModel::setData() обрабатывает только Qt::EditRole. Поэтому или наследоваться или делегата писать.
offtop kadr, у меня твой аватар всегда в offline. Перезалей куда-нибудь, а то страницы, где ты пишешь, долго грузятся. Название: Re: Как раскрасить ветки в QTreeView? Отправлено: kadr от Октябрь 01, 2010, 09:15 Ну а вообще есть метод попроще, для QFileSystemModel?
|