Название: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги? Отправлено: Caduceus от Январь 22, 2009, 23:57 Что-то я не вполне себе представляю как в С++ дополнять enum своми значениями
Необходимо в TreeView иметь рядом элементом по два чекбокса рядом с именем и целый стобец по 5 чекбоксов (знаете как типа оценка песни в проигрывателях - звездочки такие). Как это сделать миниматьными усилиями? Название: Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги? Отправлено: ритт от Январь 23, 2009, 03:46 Цитировать Необходимо в TreeView иметь рядом элементом по два чекбокса рядом с именем не совсем понимаю. может скриншотик?Цитировать и целый стобец по 5 чекбоксов (знаете как типа оценка песни в проигрывателях - звездочки такие). Как это сделать миниматьными усилиями? examples/itemviews/stardelegateНазвание: Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги? Отправлено: Caduceus от Январь 23, 2009, 10:27 Вот так хочется:
(http://www.monados.com/DR/two_cb.PNG) То есть один чекбокс я сделал, а вот два никак. Это возможно сделать не делая все руками? Название: Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги? Отправлено: ритт от Январь 23, 2009, 11:22 если QTreeView, то наследуйся от модели и добавь столбец для дочерних веток - пусть в этом столбце и будет чекбокс...или что?
Название: Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги? Отправлено: Caduceus от Январь 23, 2009, 11:24 Не, это отдельный столбец - так -то понятно, а вот именно чтоб рядом с именем - то есть слева от имени в одном столбце с именем - так можно?
Название: Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги? Отправлено: ритт от Январь 23, 2009, 11:52 конечно, можно.
читать QItemDelegate::{paint,draw*,setEditorData,setModelData,sizeHint} в модель придётся добавлять обработку пользовательской роли. Название: Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги? Отправлено: Caduceus от Январь 23, 2009, 11:54 Ой, а можно чуть-чуть поподробнее. Прям самую малость?
Название: Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги? Отправлено: ритт от Январь 23, 2009, 13:05 конечно. http://doc.trolltech.com/main-snapshot/qitemdelegate.html
а ещё examples/itemviews я ж кидал уже паз на examples/itemviews/stardelegate - посмотрел бы хоть сорцы! Название: Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги? Отправлено: Caduceus от Январь 23, 2009, 13:11 Да смотрел я сорцы этого StarsDelegate - не то там немного
Ну ладно, спасибо, буду копать Название: Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги? Отправлено: ритт от Январь 23, 2009, 13:26 всё там то. именно _то_, о чём ты говоришь.
разница лишь в том, что для отрисовки второй галочки тебе необходимо в модели обрабатывать кастомную роль (типа, static const int MyGalo4kaRole = Qt::UserRole + 44;) - вот для этой-самой роли реализовываешь модификации в наследумой модели (в частности data/setData (возможно itemFlags)), а в делегате просишь дату для этой роли и, если в ячейке нужно нарисовать _твою_ галочку, рисуешь её (drawCheck), а отрисовку из суперкласса сдвигаешь на n пикселей (не забудь переопределить sizeHint). ну, и плюс полюбишься слегка ещё с createEditor, etc. |