0
点赞
收藏
分享

微信扫一扫

PyQT5 (九十六) 实现不规则窗口异形窗口 案例

巧乐兹_d41f 2022-01-13 阅读 74

PyQt5 实现不规则窗口异形窗口 案例
通过mask实现异形窗口,需要一张透明的png图,透明部分被抠出,形成一个非矩形的区域

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon, QBitmap, QPainter, QPixmap
from PyQt5.QtWidgets import QHBoxLayout, QPushButton, QMessageBox, QApplication, QVBoxLayout, QWidget, \
    QLabel, QGridLayout, QLineEdit, QTextEdit, QFormLayout, QComboBox

'''
PyQt5 实现不规则窗口异形窗口 案例
通过mask实现异形窗口,需要一张透明的png图,透明部分被抠出,形成一个非矩形的区域


'''


class AbnormityWindowDemo(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 设置定位和左上角坐标
        self.setGeometry(300, 300, 360, 260)
        # 设置窗口标题
        self.setWindowTitle('异形窗口 的演示')
        # 设置窗口图标
        # self.setWindowIcon(QIcon('../web.ico'))

        self.pix = QBitmap('Black.png')
        self.resize(self.pix.size())
        self.setMask(self.pix)

    def paintEvent(self,event):
        painter = QPainter(self)
        painter.drawPixmap(0,0,self.pix.width(),self.pix.height(),QPixmap('Black.png'))



if __name__ == '__main__':
    app = QApplication(sys.argv)
    # 设置应用图标
    app.setWindowIcon(QIcon('../web.ico'))
    w = AbnormityWindowDemo()

    w.show()
    sys.exit(app.exec_())

 

举报

相关推荐

0 条评论