Qt QGraphicsItemごとに個別にアンチエイリアスをかける
QGraphiceViewではsetRenderHint関数でQPainter::Antialiasingを設定してやることで
以下のようにアンチエイリアスのオン オフを切り替えられます。
アンチエイリアス オン
アンチエイリアス オフ
このようにアンチエイリアスの設定を切り替えられますが、
この設定はQGraphicsView全体に適用されてしまいます。
もしQGraphicsItemごとに個別にアンチエイリアスをかけたい場合は
QGraphicsItemを継承したclassでpaint関数を以下のようにオーバーライドすることで
個別のItemにアンチエイリアスをかけることができます。
例はQGraphicsEllipseItemを継承した場合です。
virtual void MyEllipseItem::paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget ) { painter->setRenderHints( painter->renderHints() | QPainter::Antialiasing ); QGraphicsEllipseItem::paint( painter, option, widget ); }
結果: 赤色のItemだけアンチエイリアス オン