Russian Qt Forum
Ноябрь 26, 2024, 13:48
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги? (Прочитано 5826 раз)
Caduceus
Гость
Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?
«
:
Январь 22, 2009, 23:57 »
Что-то я не вполне себе представляю как в С++ дополнять enum своми значениями
Необходимо в TreeView иметь рядом элементом по два чекбокса рядом с именем и целый стобец по 5 чекбоксов (знаете как типа оценка песни в проигрывателях - звездочки такие). Как это сделать миниматьными усилиями?
«
Последнее редактирование: Январь 22, 2009, 23:59 от Caduceus
»
Записан
ритт
Гость
Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?
«
Ответ #1 :
Январь 23, 2009, 03:46 »
Цитировать
Необходимо в TreeView иметь рядом элементом по два чекбокса рядом с именем
не совсем понимаю. может скриншотик?
Цитировать
и целый стобец по 5 чекбоксов (знаете как типа оценка песни в проигрывателях - звездочки такие). Как это сделать миниматьными усилиями?
examples/itemviews/stardelegate
Записан
Caduceus
Гость
Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?
«
Ответ #2 :
Январь 23, 2009, 10:27 »
Вот так хочется:
То есть один чекбокс я сделал, а вот два никак. Это возможно сделать не делая все руками?
Записан
ритт
Гость
Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?
«
Ответ #3 :
Январь 23, 2009, 11:22 »
если QTreeView, то наследуйся от модели и добавь столбец для дочерних веток - пусть в этом столбце и будет чекбокс...или что?
Записан
Caduceus
Гость
Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?
«
Ответ #4 :
Январь 23, 2009, 11:24 »
Не, это отдельный столбец - так -то понятно, а вот именно чтоб рядом с именем - то есть слева от имени в одном столбце с именем - так можно?
Записан
ритт
Гость
Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?
«
Ответ #5 :
Январь 23, 2009, 11:52 »
конечно, можно.
читать QItemDelegate::{paint,draw*,setEditorData,setModelData,sizeHint}
в модель придётся добавлять обработку пользовательской роли.
Записан
Caduceus
Гость
Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?
«
Ответ #6 :
Январь 23, 2009, 11:54 »
Ой, а можно чуть-чуть поподробнее. Прям самую малость?
Записан
ритт
Гость
Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?
«
Ответ #7 :
Январь 23, 2009, 13:05 »
конечно.
http://doc.trolltech.com/main-snapshot/qitemdelegate.html
а ещё examples/itemviews
я ж кидал уже паз на examples/itemviews/stardelegate - посмотрел бы хоть сорцы!
Записан
Caduceus
Гость
Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?
«
Ответ #8 :
Январь 23, 2009, 13:11 »
Да смотрел я сорцы этого StarsDelegate - не то там немного
Ну ладно, спасибо, буду копать
Записан
ритт
Гость
Re: Хочу 2 чексбокса в модели. Переопределять Qt::ItemFlag и добавлять свои флаги?
«
Ответ #9 :
Январь 23, 2009, 13:26 »
всё там то. именно _то_, о чём ты говоришь.
разница лишь в том, что для отрисовки второй галочки тебе необходимо в модели обрабатывать кастомную роль (типа, static const int MyGalo4kaRole = Qt::UserRole + 44;) - вот для этой-самой роли реализовываешь модификации в наследумой модели (в частности data/setData (возможно itemFlags)), а в делегате просишь дату для этой роли и, если в ячейке нужно нарисовать _твою_ галочку, рисуешь её (drawCheck), а отрисовку из суперкласса сдвигаешь на n пикселей (не забудь переопределить sizeHint). ну, и плюс полюбишься слегка ещё с createEditor, etc.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...