Russian Qt Forum
Ноябрь 26, 2024, 13:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?  (Прочитано 5829 раз)
Caduceus
Гость
« : Январь 22, 2009, 23:57 »

Что-то я не вполне себе представляю как в С++ дополнять enum своми значениями

Необходимо в TreeView иметь рядом элементом по два чекбокса рядом с именем и целый стобец по 5 чекбоксов (знаете как типа оценка песни в проигрывателях - звездочки такие). Как это сделать миниматьными усилиями?
« Последнее редактирование: Январь 22, 2009, 23:59 от Caduceus » Записан
ритт
Гость
« Ответ #1 : Январь 23, 2009, 03:46 »

Цитировать
Необходимо в TreeView иметь рядом элементом по два чекбокса рядом с именем
не совсем понимаю. может скриншотик?

Цитировать
и целый стобец по 5 чекбоксов (знаете как типа оценка песни в проигрывателях - звездочки такие). Как это сделать миниматьными усилиями?
examples/itemviews/stardelegate
Записан
Caduceus
Гость
« Ответ #2 : Январь 23, 2009, 10:27 »

Вот так хочется:


То есть один чекбокс я сделал, а вот два никак. Это возможно  сделать не делая все руками?
Записан
ритт
Гость
« Ответ #3 : Январь 23, 2009, 11:22 »

если QTreeView, то наследуйся от модели и добавь столбец для дочерних веток - пусть в этом столбце и будет чекбокс...или что?
Записан
Caduceus
Гость
« Ответ #4 : Январь 23, 2009, 11:24 »

Не, это отдельный столбец - так -то понятно, а вот именно чтоб рядом с именем - то есть слева от имени в одном столбце с именем - так можно?
Записан
ритт
Гость
« Ответ #5 : Январь 23, 2009, 11:52 »

конечно, можно.
читать QItemDelegate::{paint,draw*,setEditorData,setModelData,sizeHint}
в модель придётся добавлять обработку пользовательской роли.
Записан
Caduceus
Гость
« Ответ #6 : Январь 23, 2009, 11:54 »

Ой, а можно чуть-чуть поподробнее. Прям самую малость?
Записан
ритт
Гость
« Ответ #7 : Январь 23, 2009, 13:05 »

конечно. http://doc.trolltech.com/main-snapshot/qitemdelegate.html
а ещё examples/itemviews

я ж кидал уже паз на examples/itemviews/stardelegate - посмотрел бы хоть сорцы!
Записан
Caduceus
Гость
« Ответ #8 : Январь 23, 2009, 13:11 »

Да смотрел я сорцы этого StarsDelegate - не то там немного

Ну ладно, спасибо, буду копать
Записан
ритт
Гость
« Ответ #9 : Январь 23, 2009, 13:26 »

всё там то. именно _то_, о чём ты говоришь.
разница лишь в том, что для отрисовки второй галочки тебе необходимо в модели обрабатывать кастомную роль (типа, static const int MyGalo4kaRole = Qt::UserRole + 44;) - вот для этой-самой роли реализовываешь модификации в наследумой модели (в частности data/setData (возможно itemFlags)), а в делегате просишь дату для этой роли и, если в ячейке нужно нарисовать _твою_ галочку, рисуешь её (drawCheck), а отрисовку из суперкласса сдвигаешь на n пикселей (не забудь переопределить sizeHint). ну, и плюс полюбишься слегка ещё с createEditor, etc.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 21.