美文网首页
12.Qt中mask的使用

12.Qt中mask的使用

作者: 杨强AT南京 | 来源:发表于2019-02-24 14:45 被阅读10次

本主题,简单使用mask,实现了一个简单的图形绘制。


一、代码

 # coding = utf-8
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPixmap, QPainter, QBitmap
import sys


class MaskWidget(QWidget):  # 不规则窗体
    def __init__(self, parent=None):
        super(MaskWidget, self).__init__(parent)
        self.setWindowTitle('遮罩的使用')
        bp = QBitmap('pic.png')  # 遮罩图(黑白二色)
        bp = bp.scaled(423,300)  # 图像太大,缩放一下,缩放后图像类型成为QPixmap类型
        self.bp = QBitmap(bp)    # 遮罩智能使用QBitmap类型
        self.setMask(self.bp)

    def paintEvent(self, QPaintEvent):  # 绘制窗口
        paint = QPainter(self)
        tu = QPixmap('scenery.jpg')   # 被绘制的图像,绘制结果被遮罩影响
        # tu = tu.scaled(423, 300)   # 图样根据窗体大小缩放下
        # 绘制图像,该图像的绘制会被遮罩影响
        paint.drawPixmap(0, 0, self.bp.width(), self.bp.height(), tu)


app = QApplication(sys.argv)
widget = MaskWidget()
widget.setGeometry(300, 300, 423, 300)
widget.show()
sys.exit(app.exec())


二、运行效果

遮罩效果

相关文章

网友评论

      本文标题:12.Qt中mask的使用

      本文链接:https://www.haomeiwen.com/subject/outbyqtx.html