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

Posted

技术标签:

【中文标题】如何删除 QCalendarWidget 中选定的日期矩形和小部件中的小图标【英文标题】:How to remove selected date rectangle in QCalendarWidget and small icons in widgets 【发布时间】:2014-11-04 14:24:22 【问题描述】:

我正在编写自己的 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); 添加到小部件的样式表解决了第一个问题。第二个仍未解决。

【问题讨论】:

图标的类型是什么?图标的实际大小是多少? 这些是 128x128 的 PNG 我知道转储问题,但是,您是否在某个地方指定了尺寸? QML,...?? 【参考方案1】:
QAbstractItemView *view = findChild<QAbstractItemView*>();

if(view) 

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

【讨论】:

【参考方案2】:

您的图标有不同的 DPI 版本吗?这个页面讨论了各种图标应该有多大: http://developer.android.com/design/style/iconography.html

【讨论】:

这是 Qt 的问题,这个链接对我没有帮助。

以上是关于如何删除 QCalendarWidget 中选定的日期矩形和小部件中的小图标的主要内容,如果未能解决你的问题,请参考以下文章

Qt入门系列开发教程基础控件篇QCalendarWidget日历控件

如何使用 SQL 数据库更改 QCalendarWidget 中单元格的背景颜色

更改 QCalendarWidget 网格可见性/厚度

2.5.4 QCalendarWidget日历

PyQt:当单元格进入 QCalendarWidget 时发出信号

更改 QCalendarWidget 的水平标题背景颜色