Qlabel对象作为一个占位符可以显示不可编辑的文本或图片,还可以设置一个GIF动画,可以杯被用作提示标记其他控件。纯文本,链接,或者富文本五都可以显示在此标签上
Qlabel常用类型与方法
Qlabel标签的显示与使用
# -*- coding: UTF-8 -*-
import sys
from PyQt5.QtWidgets import QApplication , QToolTip,QWidget,QLabel,QVBoxLayout
from PyQt5.QtGui import QPixmap,QPalette
# QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,可以进行,贴图,添加控件颜色的作用
#QPalette是Qt中的一个调色板类,用于美化界面
from PyQt5.QtCore import Qt
class WinDemo(QWidget):
def __init__(self):
super().__init__()
#创建4个标签
label1 = QLabel(self)
label2 = QLabel(self)
label3 = QLabel(self)
label4 = QLabel(self)
#标签控件的初始化
label1.setText("这是一个文本标签")
label1.setAutoFillBackground(True)
#设置控件颜色
palette=QPalette()
palette.setColor(QPalette.Window,Qt.blue)
label1.setPalette(palette)
#控件居中
label1.setAlignment(Qt.AlignCenter)
label2.setText("<a href='#'>欢迎使用 Python GUI应用</a>")
label3.setAlignment(Qt.AlignCenter)
label3.setToolTip("这是一个图片标签")
#添加图片
label3.setPixmap(QPixmap("./python.jpg"))
#设置外部链接
label4.setText("<a href='https://blog.csdn.net/weixin_44677658'>欢迎访问我的博客</a>")
label4.setAlignment(Qt.AlignRight)
label4.setToolTip("进入博客")
#在窗口布局中添加控件
vbox=QVBoxLayout()
vbox.addWidget(label1)
vbox.addStretch()
#作用是在布局器中增加一个伸缩量,里面的参数表示QSpacerItem的个数,默认值为零,会将你放在layout中的空间压缩成默认的大小
vbox.addWidget(label2)
vbox.addStretch()
vbox.addWidget(label3)
vbox.addStretch()
vbox.addWidget(label4)
#y允许label1访问超链接
label1.setOpenExternalLinks(True)
#打开允许访问,默认不允许
label4.setOpenExternalLinks(True)
#点击文本框绑定槽事件
label4.linkActivated.connect( link_clicked )
#划过文本框绑定槽事件
label2.linkHovered.connect( link_hovered )
#设置文本的交互形式
label1.setTextInteractionFlags(Qt.TextSelectableByMouse)
self.setLayout(vbox)
self.setWindowTitle("example")
#类外函数参数可以不加self
def link_hovered():
print("划过触发")
def link_clicked():
print("点击触发")
if __name__=='__main__':
app=QApplication(sys.argv)
win=WinDemo()
win.show()
sys.exit(app.exec_())
addStretch函数
效果
Qlabel快捷键使用
# -*- coding: UTF-8 -*-
import sys
from PyQt5.QtWidgets import QApplication , QToolTip,QWidget,QLabel,QLineEdit,QPushButton,QGridLayout
from PyQt5.QtGui import QPixmap,QPalette
# QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,可以进行,贴图,添加控件颜色的作用
#QPalette是Qt中的一个调色板类,用于美化界面
from PyQt5.QtCore import Qt
class WinDemo(QWidget):
def __init__(self):
super().__init__()
#定义名字和快捷方式
label1 = QLabel('&name',self)
edit1=QLineEdit(self)
#设置伙伴
label1.setBuddy(edit1)
label2 = QLabel('&Password', self)
edit2 = QLineEdit(self)
label2.setBuddy(edit2)
btnOk=QPushButton('&OK')
btnCancel=QPushButton('&Cancel')
#设置布局
mainLayout=QGridLayout(self)
mainLayout.addWidget(label1,0,0)
mainLayout.addWidget(edit1,0,1,1,2)
mainLayout.addWidget(label2, 1, 0)
mainLayout.addWidget(edit2, 1, 1, 1, 2)
mainLayout.addWidget(btnOk, 2, 1)
mainLayout.addWidget(btnCancel,2,2)
if __name__=='__main__':
app=QApplication(sys.argv)
win=WinDemo()
win.show()
sys.exit(app.exec_())
使用Alt + 大写首字母即可快速定位到相应控件
原因:Qlabel(&Name)定义了快捷方式