看PySide的示例代码的时候,有个时钟的案例,最后它将那个时钟设置成一个圆形,这顿时让我很感兴趣,细看代码,就是用了asMask的方法,QWidget这个类里有这个方法,共有两种使用方法,如下:
于是找了张图片作为mask试试,实现下各种形状的按钮,如下图,有mask的时候是这样的
无mask的时候是这样的
其实这里主要用到了重写resizeEvent,以及最后用图片作为个mask
self.setMask(self.mask_pixmap.mask())
主要代码如下:
from PySide2 import QtGui, QtWidgets, QtCore
class MaskButton(QtWidgets.QPushButton):
clicked = QtCore.Signal(str)
def __init__(self, ):
super(MaskButton, self).__init__()
self.