美文网首页
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