国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - pyqt5蒙版遮罩mask,setmask的使用

pyqt5蒙版遮罩mask,setmask的使用

2021-11-29 10:43集電極 Python

mask()和setmask()一般是在pyqt繪圖時常見,本文就來介紹一下pyqt5蒙版遮罩mask,setmask的使用,具有一定的參考價值,感興趣的可以了解一下

1.理解

mask()setmask()一般是在pyqt繪圖時常見,而且在顯示不規則圖形時更是常見。

參考書籍上說:

setmask()函數的作用是為調用它的控件增加一個遮罩,遮住所選區域以外的部分,使控件看起來是透明的。它的參數可以是一個qbitmap對象或一個qregion對象。

其實書上說的不錯,可惜我的理解能力達不到啊

接下來說說我的理解

setmask()添加的遮罩蒙版是qbitmap對象(就是黑白圖片)時,和ps的蒙版作用是大體一致的,黑色就是把當前調用的gui界面變成蒙版,整個界面是黑色的。而白色可以透過當前gui界面,即如果把蒙版的區域涂成白色的話,就可以看到當前蒙版下面的界面了。這和ps也是一致的。

mask()一般是給圖片自己增加蒙版

2.例子

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import sys
from pyqt5.qtcore import qt, qrect, qpoint
from pyqt5.qtwidgets import qwidget, qapplication, qdesktopwidget
from pyqt5.qtgui import qpixmap, qpainter, qbitmap, qcursor, qpen, qbrush
import pyqt5.qtcore as qtcore
 
'''
# setmask()的作用是為調用它的控件增加一個遮罩,遮住所選區域以外的部分,使之看起來是透明的。
# 它的參數可以為qbitmap或qregion對象,此處調用qpixmap的mask()函數獲得圖片自身的遮罩,是一個qbitmap對象,
# 在示例中使用的是png格式,它的透明部分實際上就是一個遮罩
'''
 
class pixwindow(qwidget):  # 不規則窗體
 
    """
    證明蒙版的作用,白色顯示當前蒙版遮住的界面(不是gui界面,gui界面就是一個蒙版,可以看到蒙版的顏色是黑色,但可以通過設置界面透明度使黑色變成灰色),黑色遮蔽,mask之外的地方透明
    """
    def __init__(self):
        super().__init__()
        self.setwindowflags(qt.framelesswindowhint | qt.windowstaysontophint)
        self.setstylesheet('''background-color:black; ''')
        # self.setwindowopacity(0.5)  設置透明度
        print(self.geometry().x())
 
        self.pix = qbitmap('mask.png')  # 蒙版
        self.resize(self.pix.size())  # 設置當前gui主界面和蒙版圖片一致
        
 
    def paintevent(self, event):  # 繪制窗口
 
        pp = qpainter(self.pix)  # 可以想象為給蒙版 pix 添加畫手
        pen = qpen(qt.red, 4)  # 鋼筆
        # pen.setstyle(qt.nopen)  # 鋼筆無顏色
        pp.setpen(pen)  # 可以想象為給畫手鋼筆
        brush = qbrush(qt.white)   # 畫刷,填充鋼筆畫的區域,填充白色是因為白色可以使蒙版透明
        pp.setbrush(brush)
        # 畫一個矩形,【rectangle矩形】
        self.startpoint = qpoint(5,5)
        self.endpoint = qpoint(300,200)
        pp.drawrect(qrect(self.startpoint, self.endpoint))  # 在蒙版mask上畫矩形,
        # 在蒙版mask上畫矩形,使矩形以內蒙版是白色(可以說是在蒙版之外,使得gui界面透明了),以外蒙版是黑色
        self.setmask(self.pix)  # 把當前整個gui界面設置為蒙版
 
 
if __name__ == '__main__':
    app = qapplication(sys.argv)
    win = pixwindow()
    win.show()
    sys.exit(app.exec_())

注意要自己添加mask圖片才可以運行程序

注意要自己添加mask圖片才可以運行程序

注意要自己添加mask圖片才可以運行程序

運行結果

pyqt5蒙版遮罩mask,setmask的使用

由于是把整個界面作為蒙版,所以沒有正常的關閉按鈕,可以ide編輯器停止運行按鈕來關閉程序,也可以通過其他方法

下面我來試一下把透明度設置為0.6,看看界面

?
1
self.setwindowopacity(0.6)

pyqt5蒙版遮罩mask,setmask的使用

注意要自己添加mask圖片

下面是我使用的mask圖片,歡迎使用

pyqt5蒙版遮罩mask,setmask的使用

到此這篇關于pyqt5蒙版遮罩mask,setmask的使用的文章就介紹到這了,更多相關pyqt5蒙版遮罩 內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_38463737/article/details/110312552

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲成人中文字幕 | 一区二区三区高清在线 | 亚洲精品久久久久一区二区三区 | 亚洲成人一区二区三区 | 亚洲资源在线 | 欧美精品在线一区二区三区 | 日韩欧美一区二区在线观看视频 | 精品美女久久久 | 免费看男女www网站入口在线 | 成人区精品一区二区毛片不卡 | 日韩精品一二三区 | 在线观看三级网站 | 欧美中文字幕一区二区 | 国产精品成人久久久久 | 最新黄色网址在线播放 | 亚洲一区二区三区在线播放 | 免费成人在线观看视频 | 国产精品久久久久久久久久久久久久久久 | 精品电影 | 免费看黄在线网站 | 久久免费视频9 | 99re6在线视频精品免费 | 亚洲精品一区 | 日本三级视频 | 国产视频一区在线 | 久久久国产一区二区三区 | 丁香婷婷综合激情五月色 | 精品一区久久 | 久久aⅴ乱码一区二区三区 一区二区精品视频 | 国产久 | 美女爽到呻吟久久久久 | 欧美国产在线视频 | 日韩欧美国产精品 | 天天精品 | 日韩有码在线视频 | 在线不卡一区 | 蜜桃av一区二区三区 | 内地农村三片在线观看 | av免费网站在线观看 | 91无吗| 在线免费观看a视频 |