标题:绘图中如何擦除一条线?
作者:postbeerliu
日期:2006-04-05 15:31
内容:
最近在用QT编写一绘图软件,在widget中响应用户点击的鼠标事件,以画线为例,第一次MousePress作为线段的起点位置,第二次作为线段的终点位置。为了动态的预演即将画出的效果图,通常实现中会响应鼠标的移动事件,即MouseMoveEvent,以虚线方式画出起点到当前点的路径,待鼠标移动到新的位置时清除起点到上次点的虚线,同时画出起点到当前点的虚线。为了实现该效果,一种途径是完全重画当前画面的所有图元,还有一种是类似VC 中的CDC的SetROP2方法选择合适的参数在原位置已反色方式重新画线以达到擦除的目的,请问在QT的Painter对象中是否有类似的功能可以实现类似的目标?
#1 [cavendish 04-05 15:39]
http://doc.trolltech.com/3.3/qt.html#RasterOp-enum
Qt::XorROP
#2 [yfy002 04-06 08:35]
http://www.cublog.cn/u/15722/?u=http://www.cublog.cn/u/15722/showart.php?id=85426