android – 如何删除QCalendarWidget中的选定日期矩形和小部件中的小图标

我正在编写自己的QCalendarWidget实现.我希望日期可以选择,但我不想看默认选择矩形.它看起来像这样:

我的代码:

in constructor: setSelectionMode(SingleSelection);

void ShiftCalendar::paintCell(QPainter *painter, const QRect &rect, const QDate &date) const
{
        if(date == selectedDate()) {
            fillCell(painter, rect, CalendarWidget::cellFillColor);
        }

        drawCellText(painter, rect, QString::number(date.day()), color);
}

void ShiftCalendar::fillCell(QPainter *painter, const QRect &rect, const QColor &color) const
{
    painter->save();

    painter->setRenderHint(QPainter::Antialiasing);
    painter->setPen(QPen(color));
    painter->setBrush(QBrush(color));
    painter->drawEllipse(fRect.center(), rect.width() / 2, rect.height() / 2);

    painter->restore();
}

我能做什么?

图中可以看到的第二个问题是按钮图标和组合框图标的小尺寸.它在桌面上看起来很好,但在Android上它一直很小.修改图标大小没有任何效果.

编辑:

添加selection-background-color解决了第一个问题:rgba(0,0,0,0);小部件的样式表.第二个仍未解决.

最佳答案

QAbstractItemView *view = findChild<QAbstractItemView*>();

if(view) {

    view->setItemDelegate(//inherit QItemDelegate and override paint event);
}
点赞