在Qt中反转或异或一行

时间:2014-12-04 08:41:30

标签: c++ qt qpainter

我可以在Qt中轻松绘制纯色线,但现在我需要通过反转原始像素来绘制一条线,或者可能对QBrush进行异或。

我要求在Win32中等效SetROP2(R2_NOT)SetROP2(R2_XORPEN)

这可能使用Qt吗?我想这样做,所以我可以在以后轻松“重写”它。

1 个答案:

答案 0 :(得分:7)

你可以这样做:

QPainter dc(widget);

dc.setCompositionMode(QPainter::RasterOp_SourceXorDestination);
dc.setPen(QColor(0xff, 0xff, 0xff));

dc.drawEllipse(center, r1, r2);

描述了其他构图模式in the QPainter documentation。要撤消单个图形操作,这个应该正是你想要的 - 只需设置你在第一个地方使用的相同的笔并重绘形状。