- 准备一张透明背景色的图片,将图片添加到qt的资源文件中
2.使用QPixmap加载图片,设置窗口的大小为图片的大小,并为窗口设置遮罩
QPixmap pix;
//加载图片
pix.load(":/image/yafeilinux.png");
//设置窗口大小为图片大小
resize(pix.size());
//为窗口设置遮罩
setMask(pix.mask());
- 重写绘图事件将图片绘制在窗口上
-
void Widget::paintEvent(QPaintEvent *event) { QPainter painter(this); //从窗口左上角开始绘制图片 painter.drawPixmap(0,0,QPixmap(":/image/yafeilinux.png")); }
关于遮罩函数mask(),还想了解更多,可以在帮助文档中搜索QWidget下的setMask()
-
setMask()有很多重写的函数
-
void QWidget::setMask(const QRegion ®ion),可以对窗口的一个区域进行遮罩,仅使窗口小部件中重叠区域的部分可见。