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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTreeView + рисование  (Прочитано 4152 раз)
Dexer
Гость
« : Февраль 20, 2010, 04:11 »

Всем привет!

Есть модель и если в  ней data(index, role) для роли (Qt::DisplayRole) возвращает QVariantList (QDateTime dtBegin, QDateTime dtEnd), то в QTreeView должен показываться временной интервал от dtBegin до dtEnd. (Что-то такого плана как на картинке).

Спасибо.
Записан
shirushizo
Гость
« Ответ #1 : Февраль 20, 2010, 08:32 »

1. Не совсем понятно зачем QTreeView и модель.
2. Желательно данные циферками и как дожлен выглядить результат
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Февраль 20, 2010, 08:52 »

>>1. Не совсем понятно зачем QTreeView и модель.
Это типа диаграммы Ганта, модель, чтобы данные из БД брать, Дерево - чтобы вложенные можно было просматривать

>>2. Желательно данные циферками и как дожлен выглядить результат
на основе первого пункта, одна ячейка - одни сутки, соответственно закрасить ему хочется диаппазон суток.
Записан

Юра.
Dexer
Гость
« Ответ #3 : Февраль 22, 2010, 12:28 »

>>1. Не совсем понятно зачем QTreeView и модель.
Это типа диаграммы Ганта, модель, чтобы данные из БД брать, Дерево - чтобы вложенные можно было просматривать
Модель неважно какая и откуда она берет данные, главное чтобы она имела некоторые данные в формате QVariantList (QDateTime dt1, QDateTime dt2). Модель как бы уже есть. 

>>2. Желательно данные циферками и как дожлен выглядить результат
на основе первого пункта, одна ячейка - одни сутки, соответственно закрасить ему хочется диаппазон суток.
Именно нужно закрасить временной диапозон. Как сделать без модели и с QTreeWidget я знаю. А вот как с моделью, немного затрудняюсь.
Записан
shirushizo
Гость
« Ответ #4 : Февраль 22, 2010, 15:30 »

Похоже int QAbstractItemModel::columnCount ( const QModelIndex & parent = QModelIndex() )
для каждого предка. Соответственно DateTime end - start.
Или суммарное количество заврашеных + незакрашенных одинаво для всех элементов? Если да, то просто цвета клеток задавать:
QVariant QAbstractItemModel::data(const QModelIndex & index, int role = Qt::DisplayRole)
{
       //в list структура (QDateTime start, QDateTime end)
       int start = list.at(index.row).start.day();
       int end = list.at(index.row).end.day();
      //...
      if(role==Qt::BackgroundRole)
           if((index.column()=>start)&&((index.column()<=end))) //start и end надо привести к int
                   return Qt::red;
           else
                   return Qt::blue;
      //....
}
Я просто саму задачу доконца не понимаю, если можно, дайте ссылку
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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