PyQt5基本控件详解之QLabel(三)
程序员文章站
2022-05-28 11:03:04
...
QLabel
- QLabel的作用:
- 占位符
- 显示文本
- 显示图片
- 放置gif动画
- 超链接
- 提示标记
Qlabel常用方法
方法 | 描述 |
---|---|
setAlignment() | 按固定值方式对齐文本 |
Qt.AlignLeft:水平方向靠左对齐 | |
Qt.AlignRight:水平方向靠右对齐 | |
Qt.AlignCenter:水平方向居中对齐 | |
Qt.AlignJustify:水平方向调整间距两端对齐 | |
Qt.AlignTop:垂直方向靠上对齐 | |
Qt.AlignBottom:垂直方向靠下对齐 | |
Qt.AlignVCenter:垂直方向居中对齐 | |
serIndent() | 设置文本缩进值 |
setPixmap() | 设置QLabel为一个Pixmap图片 |
text() | 获得Qlabel的文本内容 |
setText() | 设置Qlabel的文本内容 |
selectedText() | 返回所选择的字符 |
setBuddy() | 设置QLabel的助记符及buddy(伙伴),及使用Qlabel设置快捷键,会在快捷键后将焦点设置到其buddy上,这里用到了Qlabel的交互控件功能 ,此外,buddy可以是任何一个widget控件,使用setBuddy(QWidget*)设置,其Qlabel必须是文本内容,并且使用“&”符号设置了助记符 |
setWordWrap() | 设置是否允许换行 |
Qlabel类中的常用信号
信号 | 描述 |
---|---|
linkActiveted | 当单击标签中的超链接,希望在新窗口打开这个超链接时,setOpenExternalLinks特性必须设置为True,即setOpenExternalLinks(True) |
linkHovered | 当鼠标指针滑过标签中嵌入的超链接时,需要用槽函数与这个信号进行绑定 |
实例一:显示QLabel标签
实现的功能:
- 标签1用于文本居中显示,并添加背景属性
- 标签2显示文本,并当鼠标滑过时会在控制台输出当用鼠标点击label2标签时,触发事件
- 标签3加载背景图片,并添加提示信息,居中显示
- 标签4使用超链接,单击可以打开百度的网址,靠右对齐
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(WindowDemo, self).__init__()
#创建4个标签
label1=QLabel(self)
label2=QLabel(self)
label3=QLabel(self)
label4=QLabel(self)
#初始化标签控件
#setText():设置Qlabel的文本内容
label1.setText('这是一个文本标签')
#标签1的背景填充更改为True,否则无法显示背景
label1.setAutoFillBackground(True)
#实例化背景对象,进行相关背景颜色属性设置
palette=QPalette()
palette.setColor(QPalette.Window,Qt.blue)
#标签1加载背景
label1.setPalette(palette)
#设置文本居中显示
label1.setAlignment(Qt.AlignCenter)
#设置标签2的显示文本
label2.setText("<a href='#'>欢迎使用python gui应用</a>")
#标签3居中
label3.setAlignment(Qt.AlignCenter)
#设置标签3的提示信息
label3.setToolTip('这是一个图片标签')
#标签3的背景图片加载
label3.setPixmap(QPixmap("E:\pyqt5快速开发与实战\第四章\images\python.jpg"))
#设置标签4的文本,含有超链接
label4.setText("<A href='www.baidu.com'>欢迎百度</a>")
#标签4靠右
label4.setAlignment(Qt.AlignRight)
#设置提示信息
label4.setToolTip('这是一个超链接标签')
#在窗口布局中添加控件
#垂直布局相关属性设置
vbox=QVBoxLayout()
#添加标签到垂直布局中
vbox.addWidget(label1)
#鼠标垂直拉伸不会改变高度
vbox.addStretch()
vbox.addWidget(label2)
vbox.addStretch()
vbox.addWidget(label3)
vbox.addStretch()
vbox.addWidget(label4)
vbox.addStretch()
#允许label1控件访问超链接
label1.setOpenExternalLinks(True)
#默认不允许访问超链接,需要使用setOpenExternalLinks(True)允许
#运行访问超链接
label4.setOpenExternalLinks(True)
#点击文本框绑定槽函数
label4.linkActivated.connect(self.link_clicked)
#滑过文本框绑定槽函数事件
label2.linkHovered.connect(self.link_hovered)
label1.setTextInteractionFlags(Qt.TextSelectableByMouse)
#加载布局:前面设置好的垂直布局
self.setLayout(vbox)
#设置标题
self.setWindowTitle('Qlabel例子')
def link_hovered(self):
print('当用鼠标点击label2标签时,触发事件')
def link_clicked(self):
print('当用鼠标点击label4标签时,触发事件')
if __name__ == '__main__':
app=QApplication(sys.argv)
win=WindowDemo()
win.show()
sys.exit(app.exec_())
效果如下
单击标签4会打开超链接的网址,这里设置的是百度,效果如下
实例二:Qlabel标签快捷键的使用
实现功能:
可以使用快捷键快速定位到相关绑定的伙伴控件
- 创建两个标签与两个文本单行输入框
- 添加快捷键与伙伴关系绑定
- 创建两个按钮,添加快捷键
- 栅格布局添加控件并设置有关的属性
快捷键的使用,举例说明
nameLb2 = QLabel(‘&Password’, self)
“&”后面加的第一个首字母大写,这是我们一会儿用到的快捷键,
使用方式是Alt+&后面大写的第一个字母
这里正确的使用方式是Alt+P
就可以快速定位到所绑定的伙伴控件上,后面的快捷键使用类似
from PyQt5.QtWidgets import *
import sys
class QLabelDemo(QDialog):
def __init__(self):
super(QLabelDemo, self).__init__()
#设置标题
self.setWindowTitle('Qlabel例子')
#设置标签1的内容,并添加快捷键Alt+Q
nameLb1=QLabel('&QQ',self)
#建立单行文本输入框
nameEd1=QLineEdit(self)
#标签与文本框继续绑定,按快捷键Alt+Q可以定位到单行输入框
nameLb1.setBuddy(nameEd1)
#与前面相同
nameLb2 = QLabel('&Password', self)
nameEd2 = QLineEdit(self)
nameLb2.setBuddy(nameEd2)
#创建两个按钮,ok与cancel并添加快捷键
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(self):
print('当用鼠标点击label2标签时,触发事件')
def link_clicked(self):
print('当用鼠标点击label4标签时,触发事件')
if __name__ == '__main__':
app=QApplication(sys.argv)
win=QLabelDemo()
win.show()
sys.exit(app.exec_())
- 效果如下:
可以使用快捷键快速定位到相关位置
Alt+Q:定位到qq文本输入框
………………
其他都可以用快捷键进行操作,可以自己尝试一下,这里就不一一细说了
源码以及相关文件下载:https://download.csdn.net/download/jia666666/10597897