下面是关于PyQt5如何在QLabel上添加边框的完整使用攻略。
准备工作
在使用PyQt5添加QLabel边框之前,需先安装PyQt5包,方法可以使用pip命令行方式安装:
pip install PyQt5
添加一些CSS样式
首先,我们需要添加一些CSS样式来实现边框。在这里,我们使用样式设置QLabel的背景颜色、边框宽度和边框颜色等属性。
CSS代码如下:
QLabel {
background-color: #f8f8f8;
border-width: 2px;
border-style: solid;
border-color: #4B91E5;
}
通过CSS样式将边框添加到QLabel上
- 创建一个QLabel控件。
label = QtWidgets.QLabel()
- 使用setStyleSheet方法将CSS样式应用于QLabel控件。
label.setStyleSheet("QLabel { background-color: #f8f8f8; border-width: 2px; border-style: solid; border-color: #4B91E5; }")
- 可以在QLabel中添加文本内容。
label.setText("Hello world!")
- 将label添加到一个布局中或者直接添加到窗口中。
示例代码:
import sys
from PyQt5 import QtWidgets
class MyWindow(QtWidgets.QWidget):
def __init__(self):
super().__init__()
label1 = QtWidgets.QLabel()
label1.setStyleSheet("QLabel { background-color: #f8f8f8; border-width: 2px; border-style: solid; border-color: #4B91E5; }")
label1.setText("Hello world!")
label2 = QtWidgets.QLabel()
label2.setStyleSheet("QLabel { background-color: #f8f8f8; border-width: 1px; border-style: dotted; border-color: #333; }")
label2.setText("PyQt5 QLabel Demo")
vbox = QtWidgets.QVBoxLayout()
vbox.addWidget(label1)
vbox.addWidget(label2)
self.setLayout(vbox)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('PyQt QLabel with border')
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
my_win = MyWindow()
my_win.show()
sys.exit(app.exec_())
使用QFrame控件来添加边框
另外一种方法是使用QFrame控件来添加边框,这种方法比较直接,但是需要用到额外的控件。操作步骤如下:
- 创建一个QFrame控件,并将它的框架线条设置为凸起样式。
frame = QtWidgets.QFrame()
frame.setFrameShape(QtWidgets.QFrame.Box)
- 创建一个QLabel,并将它添加到QFrame中。
label = QtWidgets.QLabel("Hello PyQt5!")
frame_layout = QtWidgets.QVBoxLayout()
frame_layout.addWidget(label)
frame.setLayout(frame_layout)
- 将QFrame添加到布局或者窗口中即可。
示例代码:
import sys
from PyQt5 import QtWidgets
class MyWindow(QtWidgets.QWidget):
def __init__(self):
super().__init__()
label1 = QtWidgets.QFrame()
label1.setFrameShape(QtWidgets.QFrame.Box)
label1_layout = QtWidgets.QVBoxLayout()
label1_layout.addWidget(QtWidgets.QLabel("Hello PyQt5!"))
label1.setLayout(label1_layout)
label2 = QtWidgets.QFrame()
label2.setFrameShape(QtWidgets.QFrame.Box)
label2.setLineWidth(2)
label2.setMidLineWidth(2)
vbox = QtWidgets.QVBoxLayout()
vbox.addWidget(label1, alignment=QtCore.Qt.AlignCenter)
vbox.addWidget(label2, alignment=QtCore.Qt.AlignCenter)
self.setLayout(vbox)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('PyQt QLabel with border')
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
my_win = MyWindow()
my_win.show()
sys.exit(app.exec_())
以上就是关于如何在PyQt5的QLabel控件上添加边框的攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 如何在QLabel上添加边框 - Python技术站