在python中使用mask()时可以消除像素效应

时间:2019-06-27 03:20:08

标签: python-3.x pyqt pyqt5

在学校项目中工作时,请尝试使用QPushButton上的mask()函数来更改按钮的形状。

但是我发现这样做的问题是按钮的侧面留有非常明显的像素。

我一直在阅读有关内容,发现有一个“抗锯齿”属性可以防止在缩放图像时发生这种现象。

在这种情况下,可以应用此按钮,或者有其他建议可以更改按钮的形状

这是您查看的出版物

Qt : Smooth a circular mask. Remove Jagged edges

enter image description here

出现的问题如下图所示,因为您可以注意到这些部分的图像不是完全笔直,但是像素得到赞赏

这是代码:

from PyQt5.QtWidgets import QMainWindow,QApplication,QPushButton
from PyQt5.QtGui import QPixmap

class Main(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

        self.button = QPushButton(self)
        self.button.resize(500,500)
        self.image = QPixmap("button.png")
        self.image = self.image.scaled(400,300)#50,50
        self.button.setMask(self.image.mask())
        self.button.setStyleSheet("Background:green;border:1px solid  black")

app = QApplication([])
m = Main()
m.show()
m.resize(800,600)
app.exec_()

作为背景,我刚才在口罩方面寻求帮助,从那开始我对此表示怀疑,希望您能为我提供帮助。

或提出其他解决方案

0 个答案:

没有答案