新しい 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 withdrawText
の動作に似た方法です。スケールの大きさに関係なく、フォントを描画すると常にシャープに見え、個々のピクセルを検出できません。
QPainter
アイコンを特定のピクセル四角形に描画し、アイテムをより大きな四角形またはピックスマップにレンダリングする前に四角形自体QPainter
を変換するように指示できると思います。しかし、どうすればこのようなことができるのかわかりません。QIconEngine::paint
私は愚かで、明らかな解決策が見えていませんか?