PyQt5 QLabel 为模糊效果设置模糊半径

  • Post category:Python

首先,需要明确的是,QLabel内置了设置模糊半径的接口,但是需要将其背景设置为透明才可以展现出模糊的效果。

下面是具体的使用攻略及示例:

1. 创建QLabel对象并设置样式

首先,需要创建一个QLabel对象,并设置它的样式,这里需要注意的是,需要将QLabel的背景色设置为透明。

from PyQt5.QtWidgets import QLabel, QVBoxLayout, QWidget

label = QLabel()
label.setStyleSheet("background-color: transparent;")

2. 在QLabel中展示图片

如果想要在QLabel中展示图片,则需要使用QPixmap类,先将图片加载进来,然后使用setPixmap()方法将图片设置到QLabel中。

from PyQt5.QtGui import QPixmap

pixmap = QPixmap("example.jpg")
label.setPixmap(pixmap)

3. 设置模糊半径

接着,在QLabel中设置模糊半径,可以使用setGraphicsEffect()方法来设置QGraphicsBlurEffect。

from PyQt5.QtWidgets import QGraphicsBlurEffect

blur = QGraphicsBlurEffect()
blur.setBlurRadius(10)
label.setGraphicsEffect(blur)

这样,就将QLabel中的图片设置为了模糊效果。完整代码示例如下:

from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QVBoxLayout, QWidget, QLabel
from PyQt5.QtWidgets import QGraphicsBlurEffect

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()

        self.label = QLabel()
        self.label.setStyleSheet("background-color: transparent;")
        self.load_image()
        self.set_blur_radius()
        self.main_layout()

    def main_layout(self):
        layout = QVBoxLayout(self)
        layout.addWidget(self.label)

    def load_image(self):
        pixmap = QPixmap("example.jpg")
        self.label.setPixmap(pixmap)

    def set_blur_radius(self):
        blur = QGraphicsBlurEffect()
        blur.setBlurRadius(10)
        self.label.setGraphicsEffect(blur)

示例一:将整个窗口背景设置为模糊

def set_blur_radius(self):
    blur = QGraphicsBlurEffect()
    blur.setBlurRadius(10)

    # 将整个窗口设置为模糊
    self.setGraphicsEffect(blur)

示例二:将QLabel内展示的图片设置为模糊

def set_blur_radius(self):
    blur = QGraphicsBlurEffect()
    blur.setBlurRadius(10)
    self.label.setGraphicsEffect(blur)

通过调用setBlurRadius()方法,可以设定模糊的半径,其中的参数值越大,图片就越模糊。

以上就是关于Python PyQt5中QLabel模糊效果的完整使用攻略。