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

标签 android c++ qt qt5

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

还有我的代码:

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);
}

关于android - 如何删除 QCalendarWidget 中的选定日期矩形和小部件中的小图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26737522/

相关文章:

android - SurfaceView 拒绝为我创建 32 位表面

c++ - 是否可以初始化具有相同名称但末尾数字不同的变量?

c++ - 有什么方法可以识别调用了哪个 QTimer?

python - 保存 Python plasmoid 的配置

c# - Xamarin.forms - Masterdetailpage : System. Reflection.TargetInvocationException:调用目标引发了异常

Android ExpandableListView 变量范围

android - list 合并工具 :replace failure

c++ - std::random_device 和 std::mt19937 服从均匀分布吗?

c++ - 如何从 boost::ptr_vector 中删除 "this"

c++ - Qt 中 PostgreSQL 和 MySQL 的优缺点?