我想设计一个新的 QIcon 并希望它看起来像一个带有圆角矩形的固定文本
.-----.
| Phy |
`-----´
在最终应用了缩放转换的 QPainter 上绘制时,该图标应该在没有“像素块”效果的情况下进行缩放(例如,当我绘制到作为 QGraphicsView 的一部分的小部件中并在其场景上应用了缩放时)。
因此,我很难知道如何绘制我的 QIcon。如果我按照以下方式进行,我将绘制一个始终具有固定数量像素的 QPixmap,因此当比例足够大时不可避免地会引入像素块效果
void MyWidget::drawIcon(QPainter *painter, QPoint pos) {
QPixmap pixmap = icon.pixmap(QSize(22, 22),
isEnabled() ? QIcon::Normal
: QIcon::Disabled,
isChecked() ? QIcon::On
: QIcon::Off);
painter->drawPixmap(pos, pixmap);
}
我正在寻找的是一种类似于 QFont 的drawText
工作方式。无论我的比例有多大,当我绘制字体时,它总是看起来很清晰,我无法检测到单个像素。
我想我可以告诉我将QPainter
我的图标绘制成一个给定的像素矩形,并在让我将项目渲染成一个可能更大的矩形或像素图之前QPainter
转换矩形本身。QIconEngine::paint
但我看不出我怎么能做这样的事情。
我只是愚蠢而没有看到明显的解决方案吗?