Название: QTreeView + рисование Отправлено: Dexer от Февраль 20, 2010, 04:11 Всем привет!
Есть модель и если в ней data(index, role) для роли (Qt::DisplayRole) возвращает QVariantList (QDateTime dtBegin, QDateTime dtEnd), то в QTreeView должен показываться временной интервал от dtBegin до dtEnd. (Что-то такого плана как на картинке). Спасибо. Название: Re: QTreeView + рисование Отправлено: shirushizo от Февраль 20, 2010, 08:32 1. Не совсем понятно зачем QTreeView и модель.
2. Желательно данные циферками и как дожлен выглядить результат Название: Re: QTreeView + рисование Отправлено: lit-uriy от Февраль 20, 2010, 08:52 >>1. Не совсем понятно зачем QTreeView и модель.
Это типа диаграммы Ганта, модель, чтобы данные из БД брать, Дерево - чтобы вложенные можно было просматривать >>2. Желательно данные циферками и как дожлен выглядить результат на основе первого пункта, одна ячейка - одни сутки, соответственно закрасить ему хочется диаппазон суток. Название: Re: QTreeView + рисование Отправлено: Dexer от Февраль 22, 2010, 12:28 >>1. Не совсем понятно зачем QTreeView и модель. Модель неважно какая и откуда она берет данные, главное чтобы она имела некоторые данные в формате QVariantList (QDateTime dt1, QDateTime dt2). Модель как бы уже есть. Это типа диаграммы Ганта, модель, чтобы данные из БД брать, Дерево - чтобы вложенные можно было просматривать >>2. Желательно данные циферками и как дожлен выглядить результат Именно нужно закрасить временной диапозон. Как сделать без модели и с QTreeWidget я знаю. А вот как с моделью, немного затрудняюсь. на основе первого пункта, одна ячейка - одни сутки, соответственно закрасить ему хочется диаппазон суток. Название: Re: QTreeView + рисование Отправлено: shirushizo от Февраль 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; //.... } Я просто саму задачу доконца не понимаю, если можно, дайте ссылку |