根据文档:
1:void QWidget::setMask(const QBitmap & bitmap);
2:void QWidget::setMask(const QRegion & region);
所以可以用透明图片和自定义区域设置
如:
1:透明图片设置,如果需要显示图片,还需将图绘制添加 paint;
void paintEvent(QPaintEvent * pQPaintEvent)
{
QPixmap pixmap("./t1.png");
QPainter paint1(this);
paint1.drawPixmap(0,0,pixmap.width(),pixmap.height(), pixmap );
}
void resizeEvent(QResizeEvent * event )
{
QPixmap pixmap("./t.png");
setMask( pixmap.mask() );
}
2: 设置原型窗口;
void resizeEvent(QResizeEvent * event )
{
int side = qMin(width(), height());
QRegion maskedRegion(width() / 2 - side / 2, height() / 2 - side / 2, side,
side, QRegion::Ellipse);
setMask(maskedRegion);
}