📅  最后修改于: 2023-12-03 15:18:50.517000             🧑  作者: Mango
在 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_offset
,shadow_color
和 shadow_blur_radius
,它们分别用于控制阴影的水平偏移量、颜色和模糊半径。
我们还创建了一个名为 shadow
的变量,其中包含了一个样式字符串,该字符串设置了标签的样式,包括颜色和阴影。阴影的样式使用了 text-shadow
参数,并将 horizontal-offset
参数设置为 self.shadow_offset
。
最后我们使用 self.setStyleSheet
方法将 shadow
样式字符串应用到标签上。
运行上述代码,我们会得到一个显示了 "Hello World" 文本的标签,并且标签周围有一个黑色的阴影,阴影的偏移量为 5px,模糊半径为 10px。
可以对阴影的偏移量、颜色和模糊半径进行调整,以实现不同的阴影效果。