PyQt5标签 – 添加阴影

当我们使用PyQt5创建GUI界面时,有时想要为标签控件添加阴影效果,以增加界面的美观性和视觉效果。在PyQt5中,可以通过设置QLabel的样式表来添加阴影。下面是具体步骤和示例说明:

步骤

  1. 导入PyQt5中需要使用的库:

from PyQt5.QtGui import QPainter, QPalette, QColor, QFont, QPixmap, QImage, QIcon
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

  1. 创建一个QLabel对象,并设置对象的显式文本和大小:

label = QLabel('Hello, world!')
label.setFixedSize(200, 100)

  1. 为标签控件添加阴影效果,需要设置控件的样式表:

label.setStyleSheet("QLabel { background-color : white; color : black; font-size: 20px; border-radius: 6px; border: 2px solid gray; padding: 10px;}"
"QLabel:hover {background-color : #f0f0f0;}"
"QLabel {background-color: white; border: 2px solid gray; color: black; padding: 10px;border-radius: 6px;}"
"QLabel {"
" border-style: outset;"
" border-width: 2px;"
" border-color: beige;"
" background-color: rgb(255, 255, 255);"
" border-radius: 10px;"
" padding: 6px;"
"}"
"QLabel:pressed {"
" background-color: rgb(224, 0, 0);"
" border-style: inset;"
"}")

  1. 最后将标签控件添加到主窗口或布局中即可。

示例说明

示例一

以下是一个简单的示例,可以创建一个添加了阴影效果的标签控件并将其添加到主窗口中:

import sys
from PyQt5.QtGui import QPainter, QPalette, QColor, QFont, QPixmap, QImage, QIcon
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

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

        self.initUI()

    def initUI(self):

        label = QLabel('Hello, world!')
        label.setFixedSize(200, 100)
        label.setStyleSheet("QLabel {"
                            "    border-style: outset;"
                            "    border-width: 2px;"
                            "    border-color: beige;"
                            "    background-color: rgb(255, 255, 255);"
                            "    border-radius: 10px;"
                            "    padding: 6px;"
                            "    color : black;"
                            "}"
                            "QLabel:pressed {"
                            "    background-color: rgb(224, 0, 0);"
                            "    border-style: inset;"
                            "}")

        hbox = QHBoxLayout()
        hbox.addWidget(label)
        self.setLayout(hbox)

        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle('PyQt5 Shadow Label')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MainWindow()
    sys.exit(app.exec_())

运行上述代码,可以看到一个添加了红色阴影效果的标签控件。

示例二

以下示例演示如何使用PyQt5创建一个具有阴影效果的文本标签,并在鼠标移动到标签上时突出显示:

import sys
from PyQt5.QtGui import QPainter, QPalette, QColor, QFont, QPixmap, QImage, QIcon
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

class ShadowLabel(QLabel):
    def __init__(self, text):
        super().__init__()

        self.text = text
        self.setFixedSize(200, 100)

        self.initUI()

    def initUI(self):

        self.setText(self.text)

        self.setStyleSheet("QLabel {"
                            "    border-style: outset;"
                            "    border-width: 2px;"
                            "    border-color: beige;"
                            "    background-color: rgb(255, 255, 255);"
                            "    border-radius: 10px;"
                            "    padding: 6px;"
                            "    color : black;"
                            "}"
                            "QLabel:hover {"
                            "background-color : #f0f0f0;"
                            "}"
                            "QLabel:pressed {"
                            "    background-color: rgb(224, 0, 0);"
                            "    border-style: inset;"
                            "}")

    def enterEvent(self, event):
        self.setStyleSheet("QLabel {"
                "    border-style: outset;"
                "    border-width: 2px;"
                "    border-color: #096192;"
                "    background-color: rgb(255, 255, 255);"
                "    border-radius: 10px;"
                "    padding: 6px;"
                "    color : black;"
                "}"
                "QLabel:hover {"
                "background-color : #f0f0f0;"
                "}"
                "QLabel:pressed {"
                "    background-color: rgb(224, 0, 0);"
                "    border-style: inset;"
                "}")

    def leaveEvent(self, event):
        self.setStyleSheet("QLabel {"
                    "    border-style: outset;"
                    "    border-width: 2px;"
                    "    border-color: beige;"
                    "    background-color: rgb(255, 255, 255);"
                    "    border-radius: 10px;"
                    "    padding: 6px;"
                    "    color : black;"
                    "}"
                    "QLabel:hover {"
                    "background-color : #f0f0f0;"
                    "}"
                    "QLabel:pressed {"
                    "    background-color: rgb(224, 0, 0);"
                    "    border-style: inset;"
                    "}")

if __name__ == '__main__':
    app = QApplication(sys.argv)

    label = ShadowLabel('PyQt5 Shadow Label')

    hbox = QHBoxLayout()
    hbox.addWidget(label)

    main_window = QWidget()
    main_window.setLayout(hbox)

    main_window.setGeometry(300, 300, 350, 250)
    main_window.setWindowTitle('PyQt5 Shadow Label')
    main_window.show()

    sys.exit(app.exec_())

在运行上述代码后,可以看到一个添加了阴影效果的文本标签,当鼠标移动到标签上时,标签会突出显示,而当鼠标移开时,标签会恢复原始状态。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5标签 – 添加阴影 - Python技术站

(0)
上一篇 2023年5月11日
下一篇 2023年5月11日

相关文章

  • PyQt5 日期时间控件QDateTimeEdit

    下面是关于Python中的PyQt5日期时间控件QDateTimeEdit的详细使用攻略。 1. PyQt5.QtWidgets.QDateTimeEdit简介 PyQt5.QtWidgets.QDateTimeEdit是一个日期时间控件,可以通过它来选择或显示日期和时间。它允许用户通过单击箭头和/或输入文字来更改日期和时间。同时,它还支持多种日期/时间格式…

    python 2023年5月12日
    00
  • PyQt5 刷子风格常量

    下面详细讲解一下Python的“PyQt5 刷子风格常量”的使用攻略。 PyQt5 刷子风格常量 PyQt5中提供了一些刷子风格的常量,可以用于设置背景颜色或者其他需要使用刷子的地方。 常量名称 说明 Qt.SolidPattern 纯色填充 Qt.Dense1Pattern 粗密度斜线填充 Qt.Dense2Pattern 中密度斜线填充 Qt.Dense…

    python 2023年5月12日
    00
  • PyQt5 QCalendarWidget 取消抓取手势属性

    下面详细讲解Python中PyQt5模块的QCalendarWidget类取消抓取手势属性的使用攻略。 简介 QCalendarWidget是PyQt5中的一个日历控件,用于在GUI中显示一个可以选择日期的日历。QCalendarWidget内置了鼠标抓取手势属性(grabGesture),用于允许用户通过手势操作进行日历的选择。但在某些情况下,我们可能不希…

    python 2023年5月11日
    00
  • PyQt5 – 当被按下时,选中的RadioButton的皮肤

    PyQt5是一款强大的Python GUI库,它提供了丰富的组件来构建图形界面。其中RadioButton是一种常用的控件,它允许用户在多个选项中选择一个选项,而当它被选中时,我们可以通过修改它的皮肤来实现不同的效果。以下是使用PyQt5实现这个过程的攻略: 安装PyQt5 如果你还没有安装PyQt5,你需要先安装它。你可以通过pip命令来安装它,如下所示:…

    python 2023年5月11日
    00
  • PyQt5 QCalendarWidget 设置按键事件

    下面是Python的“PyQt5 QCalendarWidget设置按键事件”的完整使用攻略: 1. 创建QCalendarWidget 要使用QCalendarWidget设置按键事件,首先需要创建一个QCalendarWidget控件,可以通过以下代码创建: from PyQt5.QtWidgets import QApplication, QWidge…

    python 2023年5月11日
    00
  • PyQt5 简介

    PyQt5 简介 PyQt5 是一个功能强大的 Python GUI 库,它是 Qt5 的 Python 封装,支持从 Qt 设计师设计的 GUI 界面生成源代码,同时也支持使用代码手动创建 GUI 界面。PyQt5 支持 Linux、Windows、Mac OS 等操作系统,是一个跨平台的 GUI 库。 安装 PyQt5 在安装 PyQt5 之前,需要安装…

    python 2023年5月12日
    00
  • PyQt5 QtSql – Python

    PyQt5是Python语言的GUI编程工具包,它涵盖了大量的GUI元素和布局选项,并且易于使用。其中,QtSql模块提供了与数据库交互的支持,使得我们可以使用Python语言来操作关系型数据库。本篇文章将介绍如何使用PyQt5的QtSql模块,并提供两个示例说明。 安装PyQt5 在使用PyQt5之前,需要先进行安装。在命令行中输入以下命令即可: pip …

    python 2023年5月10日
    00
  • PyQt5 – 为处于关闭状态的可编辑组合框设置皮肤

    为了为处于关闭状态的可编辑组合框设置皮肤,我们需要使用 PyQt5 模块中的 QComboBox 和 QStyleFactory 类。 下面将具体介绍如何实现: 步骤1:导入模块 要为 QComboBox 设置皮肤,需要导入 PyQt5.QtWidgets 和 PyQt5.QtGui 模块。导入方式如下: import sys from PyQt5.QtWi…

    python 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部