12.Qt中mask的使用

本主题,简单使用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())


二、运行效果

遮罩效果

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,312评论 4 61
  • github排名https://github.com/trending,github搜索:https://gith...
    小米君的demo阅读 4,896评论 2 38
  • 世间万物,不乏瑰丽奇秀,或得之秀,曰“幸福”;或得之奇,曰“幸福”;或得之瑰丽,曰“幸福”。观遍万物,何物可与家人...
    YHXCTT阅读 200评论 0 0
  • 优秀的人,总容易被温水煮青蛙。 我从读书开始,就不是班上特别优秀的人。初中的时候,我特别皮,导致我都怀疑班主任让我...
    白发佛阅读 424评论 0 2