Отнаследовался от QAbstractTableModel и создал модель (отображение во вложении) , который отображает недельное расписание. Мне нужно разделить столбец на несколько под столбцов , как это сделать ?
#include "calendarmodel.h"
#include <QLocale>
#include <QBrush>
#include <QDebug>
CalendarModel::CalendarModel(QWidget *parent):QAbstractTableModel (parent)
{
_inWorkTime.setHMS(8,0,0);
_outWorkTime.setHMS(19,0,0);
_date = QDate::currentDate();
_firstDate = _date;
setCalendarPage(_date.year(), _date.month());
}
void CalendarModel::setCalendarPage(int yoar, int mohth)
{
beginResetModel();
_firstDate = _firstDate.addDays(-_firstDate.dayOfWeek()+1);
endResetModel();
}
int CalendarModel::rowCount(const QModelIndex &parent) const
{
return (_outWorkTime.hour()-_inWorkTime.hour())+2;
}
int CalendarModel::columnCount(const QModelIndex &parent) const
{
return 7;
}
QVariant CalendarModel::data(const QModelIndex &index, int role) const
{
if(!index.isValid())
return QVariant();
switch (role) {
case Qt::DisplayRole:
// return headerData(index.row(),Qt::Horizontal, Qt::DisplayRole);
case Qt::BackgroundRole:
if(index.row()==0) return QBrush(QColor(220, 220, 220)); // цвет секции аудитории
if(index.column()==5 || index.column()==6) return QBrush(QColor(255, 199, 199));
if(_date.toString("ddd.dd.MM") == headerData(index.column(),Qt::Horizontal, Qt::DisplayRole))
return QBrush(QColor(255, 244, 158));
}
return QVariant();
}
QVariant CalendarModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if(orientation == Qt::Horizontal){
switch (role) {
case Qt::DisplayRole:
return _firstDate.addDays(section).toString("ddd.dd.MM");
case Qt::BackgroundRole:
if(section % 2 == 0){
return QBrush(QColor(255, 241, 133));
}
else return QBrush(QColor(252, 227, 38));
}
}
if(orientation == Qt::Vertical){
switch (role) {
case Qt::DisplayRole:
if(section==0)return "Ауд";
return QString::number((_inWorkTime.hour()-1)+section)+":00";
case Qt::BackgroundRole:
if(section==0) return QBrush(QColor(220, 220, 220)); // цвет секции аудитории
}
}
return QVariant();
}
Или помогите партировать HierarchicalHeaderView (
https://store.kde.org/p/1132194/) для Qt5.7