我想設計一個新的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的繪畫功能就足夠了。 –