标签
QLabel用于显示文本或图像。没有提供用户交互功能。标签的视觉外观可以通过各种方式进行配置,并且可以用于为另一个窗口小部件指定焦点助记键。
一个QLabel可以包含以下任意内容类型:
| 内容 | 设置 |
|---|---|
| 纯文本 | 将普通字符串传递给setText() |
| 富文本 | 将包含富文本的字符传递给setText() |
| 像素图 | 将QPixmap传递给setPixmap() |
| 电影 | 将QMovie传递给setMovie() |
| 号码 | 将int或double传递给setNum(),它将数字转换为纯文本 |
| 无 | 与空的纯文本相同,这是默认值,由clear()设置 |
创建普通文本
# _*_coding:utf-8 _*_
import sys
from PyQt5.QtWidgets import *
class Win(QMainWindow):
def __init__(self):
super().__init__()
self.initUi()
def initUi(self):
widget = QWidget(self)
self.setCentralWidget(widget)
word = """
1. 前面的空白就是我设置的缩进: setWordWrap();
2. 这是一段普通的文本: setText();
3. 我还加了形状: setFrameStyle();
4. 不仅如此,在窗口缩小到一定程度时,我还能自动换行喔: setIdent()
5. 我已经连接到我的按钮伙伴,使用快捷键Alt+D模拟点击: setLayout()
"""
self.label = QLabel(word, self)
self.label.setFrameStyle(QFrame.Panel | QFrame.Sunken)
self.label.setIndent(50)
self.label.setWordWrap(True)
self.pushButton = QPushButton("我是按钮 (&D)", self)
self.label.setBuddy(self.pushButton)
self.layout = QVBoxLayout(self)
self.layout.addWidget(self.label)
self.layout.addWidget(self.pushButton)
widget.setLayout(self.layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = Win()
win.show()
sys.exit(app.exec_())
创建其他文本
# _*_coding:utf-8 _*_
from PyQt5.QtWidgets import *
import sys
class Win(QMainWindow):
def __init__(self):
super().__init__()
self.initUi()
def initUi(self):
widget = QWidget(self)
self.setCentralWidget(widget)
word = """
1. 前面的空白就是我设置的缩进: <b style="color:red">setWordWrap()</b>;<br>
2. 这是一段普通的文本: <b style="color:red">setText()</b>;<br>
3. 我还加了形状: <b style="color:red">setFrameStyle()</b>;<br>
4. 不仅如此,在窗口缩小到一定程度时,我还能自动换行喔: <b style="color:red">setIdent()</b>;<br>
5. 我已经连接到我的按钮伙伴,使用快捷键Alt+D模拟点击: <b style="color:red">setLayout()</b>;<br>
"""
self.label = QLabel(word, self)
self.label.setFrameStyle(QFrame.Panel | QFrame.Sunken)
self.label.setIndent(50)
self.label.setWordWrap(True)
self.pushButton = QPushButton("我是按钮 (&D)", self)
self.label.setBuddy(self.pushButton)
self.layout = QVBoxLayout(self)
self.layout.addWidget(self.label)
self.layout.addWidget(self.pushButton)
widget.setLayout(self.layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = Win()
win.show()
sys.exit(app.exec_())
代码一毛一样,就是文本变了
创建图片标签
# _*_coding:utf-8 _*_
from PyQt5.QtWidgets import *
import sys
class Win(QMainWindow):
def __init__(self):
super().__init__()
self.initUi()
def initUi(self):
widget = QWidget(self)
self.setCentralWidget(widget)
self.label = QLabel(self)
self.label.setPixmap(QPixmap("D:\imagepython.png")) # 添加图片
self.label.setScaledContents(True)
self.layout = QVBoxLayout(self)
self.layout.addWidget(self.label)
widget.setLayout(self.layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = Win()
win.show()
sys.exit(app.exec_())
创建动画标签
# _*_coding:utf-8 _*_
from PyQt5.QtWidgets import *
import sys
class Win(QMainWindow):
def __init__(self):
super().__init__()
self.initUi()
def initUi(self):
self.resize(700, 500)
widget = QWidget(self)
self.setCentralWidget(widget)
self.label = QLabel(self) # 创建一个空标签
self.movie = QMovie("C:\Users\oliven\Desktop\jumpstar.gif") # 动画路径
self.label.setMovie(self.movie) # 添加到label里
self.label.setScaledContents(True) # 缩放其内容以填充所有可用空间
self.label.setFrameStyle(QFrame.Panel | QFrame.Sunken) # 设置形状
self.label.setIndent(50) # 设置缩进
self.label.setWordWrap(True) # 设置自动换行
self.pushButton = QPushButton("开始动画 (&D)", self) # 创建按钮
self.label.setBuddy(self.pushButton) # 为label加一个伙伴
self.pushButton.clicked.connect(self.run) # 将按钮点击信号连接到槽
self.layout = QVBoxLayout(self) # 垂直布局
self.layout.addWidget(self.label) #将控件添加到布局
self.layout.addWidget(self.pushButton)
widget.setLayout(self.layout) # 设置控件布局
def run(self):
self.movie.start()
if __name__ == '__main__':
app = QApplication(sys.argv)
win = Win()
win.show()
sys.exit(app.exec_())
标签常用方法
-
QLabel().setAlignment():设置标签对齐方式-
例如:
QLabel().setAlignment(Qt.AlignBottom) -
可用的参数:
Qt.AlignLeft:与左边缘对齐Qt.ALignRight:与右边缘对齐Qt.AlignHCenter:在可用空间中水平居中Qt.AlignJustify:在可用空间中对齐文本Qt.AlignTop:与顶部对齐Qt.AlignBottom:与底部对齐Qt.AlignVcenter:在可用控件中垂直居中Qt.AlignBaseline:与基线对齐Qt.AlignCenter:在两个维度上均居中
-
-
QLabel().setIndent():按当前对齐方式进行设置缩进- 例如:
QLabel().setIndent(10),表示缩进10个
- 例如:
-
QLabel().setMargin():设置边距的宽度- 例如:
QLabel().setMargin(10)
- 例如:
-
QLabel().setOpenExternalLinks():是否为超链接开启自动打开链接,而不是发出linkAction()信号- 例如:
QLabel().setOpenExternalLinks(True)
- 例如:
-
QLabel().setPixmap():为标签设置一个图片- 例如:
QLabel().setPixmap(QPixmap("C:\image1.png"))
- 例如:
-
QLabel().setScaledContents():是否将缩放其内容以填充所有可用空间;启用后,标签会显示一个像素图,它将缩放该像素图以填充可用空间。- 例如:
QLabel().setScaledContents(True)
- 例如:
-
QLabel().setText():为标签设置一个文本- 例如:
QLabel().setText("Hello World")
- 例如:
-
QLabel().setTextInteractionFlags():指定标签显示的文本如何与用户输入交互- 例如:
QLabel().setTextInteractionFlags(Qt.TextSelectableByMouse):表示鼠标可以选中该标签的文字 - 可用参数如下:
Qt.NoTextInteraction:无法与文字交互Qt.TextSelectableByMouse:可以使用鼠标选择文本,然后使用上下文菜单或标准键盘快捷键将其复制到剪贴板。Qt.TextSelectableByKeyboard:可以使用键盘上的光标键选择文本。显示一个文本光标。Qt.LinksAccessibleByMouse:链接可以用鼠标突出显示并激活Qt.LinksAccessibleByKeyboard:可以使用Tab键突出显示连接,并使Enter激活它。Qt.TextEditorInteraction:文本编辑器的默认值:TextSelectableByMouseTextSelectableByKeyboardTextEditable
Qt.TextBrowserInteraction:QTextBrowser的默认值。
- 例如:
-
QLabel().setWordWrap():自动换行- 例如:
QLabel().setWordWrpap(True)
- 例如:
-
QLabel().clear():清除所有标签内容 -
QLabel().linkActivated():单击链接时会发出此信号- 例如:
QLabel().linkActivated.connect(self.func):self.func是自己创建的函数
- 例如:
-
QLabel().linkHovered():鼠标滑过链接时发出此信号- 例如:
QLabel().linkHovered.connect(self.func)
- 例如:
-
QLabel().setMovie():为标签添加一个视频(这里添加一个GIF动图)- 例如:
QLabel().setMoive(QMovie("C:\image\funny.gif"))
- 例如:
-
QLabel().setPicture():添加一个Picture -
QLabel().setSelection():选择开始到结束的文本- 例如:
QLabel().setSelection(1, 10)
- 例如: