总第27篇
在Qt项目开发过程中,某些特定的场合下需要制作非规则的图形显示,这时我们就要用到图形遮罩功能,系统库提供了setMask()
接口,但是很多人看着不太明白。本文将详细说明此接口的应用,并用代码实现比较常见的圆形图像的制作。
1.接口说明及应用
Qt中针对窗口部件遮罩功能提供的setMask()
函数, 主要有两种形式:
setMask(const QBitmap &bitmap)
:这种方式是用位图实现的遮罩,当位图上对应的像素为1时,遮挡部位才可见;setMask(const QRegion ®ion)
: 这种方式是用区域实现的遮罩,当区域重合的地方,遮挡部位才可见;
这个接口可以为其调用者的空间添加一个遮罩,在遮罩范围之外都没有显示。注意,史是遮罩,窗体大小没有变化。
下面是一个用setMask()
实现不规则窗口的例子,其示例效果如下: