PyQt5标签 – 添加阴影

  • Post category:Python

下面我将详细解释如何在PyQt5中使用标签并添加阴影效果。

标签的基本使用

在PyQt5中,标签是展示静态文本信息的常用控件,其使用方法十分简单。

首先需要导入PyQt5库:

from PyQt5.QtWidgets import QApplication, QWidget, QLabel

然后,我们可以通过创建QLabel的实例来创建标签:

label = QLabel('Hello world', self)

其中,第一个参数为标签中需要展示的文本,第二个参数为标签所在的父控件。

接下来,我们可以通过调用setLabel()方法来为标签添加样式和设置字体大小:

label.setStyleSheet('font-size: 18px; color: red;')

最后,我们需要将标签添加到窗口中的布局中方可显示出来:

self.layout.addWidget(label)

这样就创建了一个简单的标签。

添加阴影效果

要为标签添加阴影效果,我们需要使用QGraphicsDropShadowEffect类。

首先需要导入该类:

from PyQt5.QtGui import QGraphicsDropShadowEffect

然后,我们可以通过创建QGraphicsDropShadowEffect的实例来添加阴影效果:

shadow = QGraphicsDropShadowEffect()
shadow.setBlurRadius(5)
shadow.setColor(QColor(0, 0, 0, 80))
shadow.setOffset(0, 0)
label.setGraphicsEffect(shadow)

其中,setBlurRadius()设置阴影模糊半径,setColor()设置阴影颜色和透明度,setOffset()设置阴影位置,上面的例子中阴影位置未发生偏移,最后用setGraphicsEffect()方法将阴影效果添加到标签中。

完整的代码示例:

from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QColor, QGraphicsDropShadowEffect

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Shadow Example')

        label1 = QLabel('Hello world', self)
        label1.setStyleSheet('font-size: 18px; color: red;')
        label1.move(20, 20)

        label2 = QLabel('Hello world', self)
        label2.setStyleSheet('font-size: 18px; color: blue;')
        label2.move(20, 60)

        shadow = QGraphicsDropShadowEffect()
        shadow.setBlurRadius(5)
        shadow.setColor(QColor(0, 0, 0, 80))
        shadow.setOffset(0, 0)

        label2.setGraphicsEffect(shadow)

        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

这里给出了两个标签,其中一个是普通标签,另一个添加了阴影效果。

希望这份PyQt5标签 -添加阴影的完整使用攻略能够对你有所帮助。