#include "ElaCalendarTitleDelegate.h" #include #include #include #include "ElaTheme.h" ElaCalendarTitleDelegate::ElaCalendarTitleDelegate(QObject* parent) : QStyledItemDelegate{parent} { _themeMode = eTheme->getThemeMode(); connect(eTheme, &ElaTheme::themeModeChanged, this, [=](ElaThemeType::ThemeMode themeMode) { _themeMode = themeMode; }); } ElaCalendarTitleDelegate::~ElaCalendarTitleDelegate() { } void ElaCalendarTitleDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const { painter->save(); painter->setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); QRectF itemRect = option.rect; // 文字绘制 QString title = index.data(Qt::UserRole).toString(); if (!title.isEmpty()) { painter->setPen(ElaThemeColor(_themeMode, BasicText)); QFont font = painter->font(); font.setWeight(QFont::Bold); painter->setFont(font); painter->drawText(itemRect, Qt::AlignCenter, title); } painter->restore(); QStyledItemDelegate::paint(painter, option, index); } QSize ElaCalendarTitleDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const { return QSize(42, 30); }