Ps:水平有限,欢迎建议和挑错
PyQt5 标签栏 可以提供文字或者图片显示,更多功能,各位可以额外挖掘。
QLabel可以包含以下任何内容类型:
我们在上一节的窗口上创建一个QLabel。
在mainwindow上添加一个内容为‘一颗数据小白菜’的QLabel,代码如下:
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
class Ui_mainWindow(object):
def setupUi(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.setWindowModality(QtCore.Qt.WindowModal)
mainWindow.resize(624, 511)
self.centralWidget = QtWidgets.QWidget(mainWindow)
self.centralWidget.setObjectName("centralWidget")
self.label = QtWidgets.QLabel(self.centralWidget)
self.label.setGeometry(QtCore.QRect(60, 60, 191, 61))
self.label.setText("一颗数据小白菜")
self.label.setObjectName("label")
mainWindow.setCentralWidget(self.centralWidget)
self.retranslateUi(mainWindow)
QtCore.QMetaObject.connectSlotsByName(mainWindow)
def retranslateUi(self, mainWindow):
_translate = QtCore.QCoreApplication.translate
mainWindow.setWindowTitle('您好')
mainWindow.setWindowIcon(QIcon('logo.png'))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Ui_mainWindow()
ui.setupUi(mainWindow)
mainWindow.show()
sys.exit(app.exec_())
效果如下:
(1)调整大小
我们用:
self.label.setGeometry(QtCore.QRect(60, 60, 191, 61))
来调整位置和大小。
60x60是qlabel在mainwindow上的位置,第一个为水平位置,第二个是垂直位置。
191x61是qlabel的大小,191是长,61是高。
(2)设置显示文字
我们用:
self.label.setText("一颗数据小白菜")
来设置显示文字。
同时还能设置QLabel的背景色,文字颜色,文字大小以及文字字体等。
1、设置边框
self.label.setFrameShape(QtWidgets.QFrame.Box)
除了Box,还有NoFrame,Plane,等。可以自行测试。
2、边框线条
self.label.setFrameShadow(QtWidgets.QFrame.Raised)
除了Raised,还有Plain,Sunken。
3、设置边框线条大小
self.label.setLineWidth(6)
self.label.setMidLineWidth(10)
4、边框背景色
self.label.setStyleSheet('background-color: rgb(255, 251, 100)')
5、文字颜色,大小,字体
font = QtGui.QFont()
#字体
font.setFamily('微软雅黑')
#加粗
font.setBold(True)
#大小
font.setPointSize(13)
font.setWeight(75)
self.label.setFont(font)
self.label.setText("<font color=%s>%s</font>" %('#7EC7FF', "一颗数据小白菜"))
6、Qlabel显示图片
self.label.setPixmap(QtGui.QPixmap("logo.png"))
7、Qlabel图片适应大小
图片随着标签大小而变化
self.label.setScaledContents(True)