📜  PyQt5 标签 - 设置阴影的水平偏移(1)

📅  最后修改于: 2023-12-03 15:18:50.517000             🧑  作者: Mango

PyQt5 标签 - 设置阴影的水平偏移

在 PyQt5 中,我们可以使用 QLable 控件来显示文本或图像。 通过使用样式表我们可以设置标签的外观。

当我们想要在标签的文本或图像周围添加阴影效果时,我们可以使用 text-shadow CSS 参数。其中一个可用的选项是 horizontal-offset,它允许我们设置阴影的水平偏移量。

下面是一个示例代码片段,展示了如何使用 horizontal-offset 参数给标签添加阴影效果:

from PyQt5.QtGui import QFont, QPainter, QColor, QPen, QBrush
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QLabel


class ShadowLabel(QLabel):
    def __init__(self, text):
        super().__init__(text)
        # 设置标签的字体和颜色
        font = QFont("Arial", 48)
        self.setFont(font)
        self.setStyleSheet("color: #fff")
        # 设置标签的阴影
        self.shadow_offset = 5
        self.shadow_color = "#000"
        self.shadow_blur_radius = 10
        self.shadow = f"""
            color: #fff;
            text-shadow: {self.shadow_color} {self.shadow_offset}px 0px {self.shadow_blur_radius}px;
            """
        self.setStyleSheet(self.shadow)


if __name__ == '__main__':
    app = QApplication([])
    widget = QWidget()
    main_label = ShadowLabel("Hello World")
    layout = QVBoxLayout()
    layout.addWidget(main_label)
    widget.setLayout(layout)
    widget.show()
    app.exec_()

在上述代码中,我们首先创建了一个继承自 QLabel 的 ShadowLabel 类。类中的 __init__ 函数首先调用 QLabel 的 __init__ 函数,设置了标签的字体和颜色。

接下来我们引入了一些新的变量:shadow_offsetshadow_colorshadow_blur_radius,它们分别用于控制阴影的水平偏移量、颜色和模糊半径。

我们还创建了一个名为 shadow 的变量,其中包含了一个样式字符串,该字符串设置了标签的样式,包括颜色和阴影。阴影的样式使用了 text-shadow 参数,并将 horizontal-offset 参数设置为 self.shadow_offset

最后我们使用 self.setStyleSheet 方法将 shadow 样式字符串应用到标签上。

运行上述代码,我们会得到一个显示了 "Hello World" 文本的标签,并且标签周围有一个黑色的阴影,阴影的偏移量为 5px,模糊半径为 10px。

可以对阴影的偏移量、颜色和模糊半径进行调整,以实现不同的阴影效果。