📜  PyQt5 – 如何在 QLabel 上添加边框?(1)

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

PyQt5 – 如何在 QLabel 上添加边框?

在 PyQt5 中,QLabel 是一个非常常用的控件,它用于在 UI 上显示文本或图像。有时候,我们可能需要在 QLabel 上添加边框来突出显示其边界或者为其增加美感。

在本文中,我们将介绍如何使用 PyQt5 在 QLabel 上添加边框并设置其颜色和宽度。

步骤
  1. 首先,我们需要创建一个 QLabel 控件并设置其文本或图像:
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
import sys

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.label = QLabel(self)
        self.label.setText("Hello World!")
        self.label.setGeometry(50, 50, 200, 50)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    ex.show()
    sys.exit(app.exec_())
  1. 接下来,我们需要设置 QLabel 的边框样式。我们可以通过设置 QLabel 的样式表来实现这个目标。在样式表中,我们可以使用 border 属性来设置边框的样式、颜色和宽度。
self.label.setStyleSheet("border: 1px solid black;")
  1. 最后,我们需要将边框添加到 QLabel 上。我们可以通过在 QLabel 的上层创建一个新的 QWidget 控件并将其背景设置为所需的颜色来模拟边框。这个 QWidget 控件可以通过 QLabel 的父级控件来设置位置和大小。
border = QWidget(self.label)
border.setStyleSheet("background-color: black;")
border.setGeometry(self.label.x()-1, self.label.y()-1, self.label.width()+2, self.label.height()+2)
  1. 完整代码如下:
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
import sys

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.label = QLabel(self)
        self.label.setText("Hello World!")
        self.label.setGeometry(50, 50, 200, 50)

        self.label.setStyleSheet("border: 1px solid black;")

        border = QWidget(self.label)
        border.setStyleSheet("background-color: black;")
        border.setGeometry(self.label.x()-1, self.label.y()-1, self.label.width()+2, self.label.height()+2)

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

输出:

output

现在,我们在 QLabel 上成功地添加了一个黑色边框,让它更加突出和美观。