void setClipRect(const QRect &, Qt::ClipOperation op = Qt::ReplaceClip);函数主要用来设置裁剪区域。
如:设置只能在QWidget里的裁剪区域绘图,此区域外绘图都是无效的。
Qt::ReplaceClip枚举解释
Qt::IntersectClip 在区域交集上面绘制,设置裁剪区域为原来裁剪区域与当前设置的区域交集区域;没有原裁剪区域则行为与ReplaceClip相同。
因为f1、f4这两个矩形之间没有交集,故drawEllipse不会画出圆形。
Qt::UniteClip 在区域并集上面绘制,在原来裁剪区域上面添加裁剪区域,没有原裁剪区域则行为与ReplaceClip相同。
Qt::UniteClip 表示并集,表示只绘制在f1、f4的矩形上,其它矩形不绘制,注意:Qt 5.0以后,该成员被废弃,不存在该成员了
Qt::ReplaceClip设置裁剪区域为当前设置区域,只能在这个区域上面绘制
Qt::NoClip 关闭裁剪区域,绘图区域恢复为整个设备区域
setClipPath的第2个参数和这相同。
原文链接:https://blog.youkuaiyun.com/sinat_33263516/article/details/103238133