我想设计一个新的QIcon,并希望它看起来像一个圆角矩形固定文本周围绘图使用QPainter
.-----.
| Phy |
`-----´
的图标应该没有“像素块规模可伸缩的QIcon “在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
使项目成为可能较大的矩形或像素图之前。但我看不出如何做到这样的事情。
我只是很愚蠢,没有看到明显的解决方案?
我可以使用qpicture吗? –
要创建可缩放的图形?大概是这样的,因为它'重播'QPainter命令,不知道它与'QSvg'类相比有多高效。 – cmannett85
我刚刚找到合适的解决方案:只需使用QIcon的绘画功能就足够了。 –