显示不可编辑的文字或图片,也可以放置一个Gif,还可以被用作提示标记。可显示纯文本、链接或富文本。
显示QLabel标签
代码示例
from PyQt5.QtWidgets import QApplication, QLabel ,QWidget, QVBoxLayout
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap ,QPalette
import sys
class WindowDemo(QWidget):
def __init__(self ):
super().__init__()
label1 = QLabel(self)
label2 = QLabel(self)
label3 = QLabel(self)
label4 = QLabel(self)
#1 初始化标签控件
label1.setText("这是一个文本标签。")
label1.setAutoFillBackground(True)
# 设置显示效果 蓝底 白字
palette = QPalette()
palette.setColor(QPalette.Window, Qt.blue)
palette.setColor(QPalette.WindowText, Qt.white)
label1.setPalette(palette)
label1.setAlignment(Qt.AlignCenter)
label2.setText("<a href='#'>欢迎使用Python GUI 应用</a>")
# 设置图片
label3.setAlignment(Qt.AlignCenter)
label3.setToolTip('这是一个图片标签')
label3.setPixmap(QPixmap("./images/python.jpg"))
label4.setText("<A href='https://blog.csdn.net/qq_37609345'>欢迎访问我的CSDN主页</a>")
label4.setAlignment(Qt.AlignRight)
label4.setToolTip('这是一个超链接标签')
#2
vbox = QVBoxLayout()
vbox.addWidget(label1)
vbox.addStretch()
vbox.addWidget(label2)
vbox.addStretch()
vbox.addWidget( label3 )
vbox.addStretch()
vbox.addWidget( label4)
#3
label1.setOpenExternalLinks(True)
# 打开允许访问超链接,默认是不允许,需要使用 setOpenExternalLinks(True)允许浏览器访问超链接
label4.setOpenExternalLinks(True)
# 点击文本框绑定槽事件
label4.linkActivated.connect(link_clicked )
# 划过文本框绑定槽事件
label2.linkHovered.connect(link_hovered )
label1.setTextInteractionFlags(Qt.TextSelectableByMouse )
self.setLayout(vbox)
self.setWindowTitle("QLabel 例子")
def link_hovered():
print("当鼠标滑过label-2标签时,触发事件。")
def link_clicked():
print("当鼠标点击label-4标签时,触发事件。" )
if __name__ == "__main__":
app = QApplication(sys.argv)
win = WindowDemo()
win.show()
sys.exit(app.exec_())
设置QLabel标签快捷键
代码示例
from PyQt5.QtWidgets import *
import sys
'''
按住 Alt + N , Alt + P , Alt + O , Alt + C 切换组件控件
'''
class QlabelDemo(QDialog):
def __init__(self):
super().__init__()
self.setWindowTitle('Qlabel 例子')
nameLb1 = QLabel('&Name', self)
nameEd1 = QLineEdit(self)
nameLb1.setBuddy(nameEd1)
nameLb2 = QLabel('&Password', self)
nameEd2 = QLineEdit(self)
nameLb2.setBuddy(nameEd2)
btnOk = QPushButton('&OK')
btnCancel = QPushButton('&Cancel')
# 栅格布局
mainLayout = QGridLayout(self)
# 位于第0行第0列
mainLayout.addWidget(nameLb1, 0, 0)
# 位于第0行第1列 占1*2的空间
mainLayout.addWidget(nameEd1, 0, 1, 1, 2)
mainLayout.addWidget(nameLb2, 1, 0)
mainLayout.addWidget(nameEd2, 1, 1, 1, 2)
mainLayout.addWidget(btnOk, 2, 1)
mainLayout.addWidget(btnCancel, 2, 2)
def link_hovered():
print("当鼠标滑过label-2标签时,触发事件。")
def link_clicked():
print("当鼠标点击label-4标签时,触发事件。")
if __name__ == "__main__":
app = QApplication(sys.argv)
labelDemo = QlabelDemo()
labelDemo.show()
sys.exit(app.exec_())