【python】PyQt5 学习 _4
本帖讲解 Label 。
Label 用处
* 占位符
* 显示文本
* 显示图片
* 放置 gif 动画
* 超链接
* 提示标记
接下来的代码:
- 标签 1 用于文本居中显示,并添加背景属性
- 标签 2 显示文本,并当鼠标滑过时会在控制台输出当用鼠标滑过label2标签时,触发事件
- 标签 3 使用超链接,单击可以打开百度的网址,靠右对齐# !/usr/bin/python3 # -*- coding: utf-8 -*- from PyQt5.QtWidgets import QApplication,QLabel,QWidget,QVBoxLayout from PyQt5.QtCore import Qt from PyQt5.QtGui import QPixmap,QPalette import sys class QtDemo(QWidget): def __init__(self): super(QtDemo, self).__init__() # 创建3个标签 label1=QLabel(self) label2=QLabel(self) label3=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.setText("<A href='www.baidu.com'>欢迎百度</a>") # 标签3靠右 label3.setAlignment(Qt.AlignRight) # 设置提示信息 label3.setToolTip('这是一个超链接标签') # 在窗口布局中添加控件 # 垂直布局相关属性设置 vbox=QVBoxLayout() # 添加标签到垂直布局中 vbox.addWidget(label1) # 鼠标垂直拉伸不会改变高度 vbox.addStretch() vbox.addWidget(label2) vbox.addStretch() vbox.addStretch() vbox.addWidget(label3) vbox.addStretch() # 允许label1控件访问超链接 label1.setOpenExternalLinks(True) # 默认不允许访问超链接,需要使用setOpenExternalLinks(True)允许 # 运行访问超链接 label3.setOpenExternalLinks(True) # 点击文本框绑定槽函数 label3.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('当用鼠标点击label3标签时,触发事件') if __name__ == '__main__': app=QApplication(sys.argv) win=QtDemo() win.show() sys.exit(app.exec_())
效果如下图:
Label 常用方法及描述
方法 | 描述 |
---|---|
setAlignment() | 按固定值方式对齐文本 |
Qt.AlignLeft:水平方向靠左对齐 | |
Qt.AlignRight: 水平方向靠右对齐 | |
Qt.AlignCenter:水平方向居中对齐 | |
Qt.AlignJustify:水平方向调整间距两端对齐 | |
Qt.AlignTop:垂直方向靠上对齐 | |
Qt.AlignVCenter:垂直方向居中对齐 | |
Qt.AlignBottom:垂直方向靠下对齐 | |
serIndent() | 设置文本缩进值 |
setPixmap() | 设置 QLabel 为一个 Pixmap 图片 |
text() | 获得 Qlabel 的文本内容 |
setText() | 设置 Qlabel 的文本内容 |
selectedText() | 返回所选择的字符 |
setWordWrap() | 设置是否允许换行 |
不知道为什么 本文的 python 代码 没有缩进。。。sorry
例举的 label 的方法并不完全,但应该可以满足日常基本需求,如果有更具体的要求,可以进一步搜索。
祝好~
先明确你的目的吧···是专门从事编程行业么?如果是想学习 python,可以买本基础教材,也可以再找找相关视频。
如果是想专门学习图形编程,可以买本《PyQt5 快速开发与实战》。
孩子如果想学习的话,哪里有好的培训啊?我看你们都做的很好,能自己开发,有推荐吗?谢谢
good