QT使用图片为窗口设置遮罩,创建不规则形状的窗口

  1. 准备一张透明背景色的图片,将图片添加到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 &region),可以对窗口的一个区域进行遮罩,仅使窗口小部件中重叠区域的部分可见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值