PyQt5实现桌宠(1)不规则窗体[Python]

本文介绍了如何使用PyQt5创建不规则窗体,即个性化桌宠。重点讲解了遮罩图片的作用,它是通过黑白两色来定义原始图片的显示与隐藏部分。在`__init__`方法中设置了蒙版图片和窗体属性,实现无边框且置顶的效果。`paintEvent()`函数用于绘制窗体内容,使用QPainter的`drawPixmap`方法。还对比了QBitmap与QPixmap的区别,并提供了实验用的图片示例。
摘要由CSDN通过智能技术生成

不规则窗体

正常的窗体是四方形的,带有窗体本身及边框(有最小化,最大化,关闭按钮)

不规则窗体是任意图形的,一般不带有边框

创建不规则窗体不止需要原始图片,还需要遮罩图片

遮罩图片

遮罩图片用来告诉PyQ原始图片的t哪些部分是显示的,哪些部分是不显示的

遮罩图片只有两色,黑与白。黑色部分是原始图片显示的部分,白色部分是原始图片不显示的部分

如果原始图片的背景是透明或单色的,遮罩图片可通过ps轻易获取

 

 

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPixmap,QPainter,QBitmap,QCursor
import PyQt5.QtCore as QtCore


class PixWindow(QWidget):                            #不规则窗体
    def __init__(self, parent=None):
        super(MainWIndow, self).__init__(parent)

        self.pix=QBitmap('b0.png')                        #蒙版
        self.resize(self.pix.size())
        self.setMask(self.pix)

        self.setWindowFlags(Qt.FramelessWindowHint|QtCore.Qt.WindowStaysOnTopHint)        # 设置无边框和置顶窗口样式

    def paintEv
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值