- PyQt 教程
- PyQt - 首页
- PyQt - 简介
- PyQt - 环境搭建
- PyQt - Hello World
- PyQt - 主要类
- PyQt - 使用 Qt Designer
- PyQt - 元对象
- PyQt 信号与槽
- PyQt - 信号和槽
- PyQt - 支持和信号
- PyQt - 未绑定和已绑定信号
- PyQt - 使用 PyQtSignal 创建新的信号
- PyQt - 连接、断开和发射信号
- PyQt - 槽装饰器
- PyQt - 槽连接
- PyQt 布局
- PyQt - 布局管理
- PyQt - QBoxLayout
- PyQt - QGridLayout
- PyQt - QFormLayout
- PyQt - QHBoxLayout
- PyQt - QVBoxLayout
- PyQt - QStackedLayout
- PyQt - QGraphicsGridLayout
- PyQt - QGraphicsAnchorLayout
- PyQt - QGraphicsLayout
- PyQt - QGraphicsLinearLayout
- PyQt 基础控件
- PyQt - 基础控件
- PyQt - QLabel 控件
- PyQt - QLineEdit 控件
- PyQt - QPushButton 控件
- PyQt - QRadioButton 控件
- PyQt - QCheckBox 控件
- PyQt - QComboBox 控件
- PyQt - QSpinBox 控件
- PyQt - QMessageBox
- PyQt - QDialogButtonBox 控件
- PyQt - QFontComboBox 控件
- PyQt - QDoubleSpinBox 控件
- PyQt - QToolBox 控件
- PyQt - QDialog 类
- PyQt - QMessageBox
- PyQt - 多文档界面
- PyQt - 拖放
- PyQt 绘图 API
- PyQt - 绘图 API
- PyQt 数据库
- PyQt - 数据库操作
- PyQt 核心要点
- PyQt - BrushStyle 常量
- PyQt - QClipboard
- PyQt - QPixmap 类
- PyQt 有用资源
- PyQt - 快速指南
- PyQt - 有用资源
- PyQt - 讨论
PyQt - QLabel 控件
一个QLabel对象充当占位符,用于显示不可编辑的文本或图像,或动画 GIF 电影。它也可以用作其他小部件的助记键。标签可以显示纯文本、超链接或富文本。
什么是 QLabel?
在 PyQt 中,QLabel 类用于创建标签小部件,这些小部件能够向用户呈现静态文本、图像或动画图像(GIF)。它具有简单的界面和强大的功能。它是设计其他直观且视觉上吸引人的 PyQt 应用程序的基础构建块。
QLabel 入门
要在您的 PyQt 应用程序中开始使用 QLabel 小部件,我们需要遵循以下基本步骤:
导入 QLabel
首先,从 PyQt6.QtWidgets 模块导入 QLabel 小部件。此步骤允许您在 Python 脚本中访问 QLabel 的功能。
from PyQt6.QtWidgets import QLabel
创建 QLabel 实例
在此步骤中,实例化一个新的 QLabel 对象。您可以通过将其作为参数传递给 QLabel 构造函数来指定要在标签中显示的初始文本。
label = QLabel('This is a QLabel widget')
自定义 QLabel(可选)
PyQt 允许您使用 setText() 等方法进一步自定义 QLabel 小部件,以动态更改显示的文本。
显示 QLabel
最后,将 QLabel 小部件集成到 PyQt 应用程序的布局中,并确保用户可以看到它。
layout.addWidget(label)
下表列出了 QLabel 类中定义的重要方法:
以下是 QLabel 最常用的方法。
序号 | 方法及说明 |
---|---|
1 |
setAlignment() 根据对齐常量对齐文本 Qt.AlignLeft Qt.AlignRight Qt.AlignCenter Qt.AlignJustify |
2 |
setIndent() 设置标签文本缩进 |
3 |
setPixmap() 显示图像 |
4 |
text() 显示标签的标题 |
5 |
setText() 以编程方式设置标题 |
6 |
selectedText() 显示标签中选定的文本(必须将 textInteractionFlag 设置为 TextSelectableByMouse) |
7 |
setBuddy() 将标签与任何输入小部件关联 |
8 |
setWordWrap() 启用或禁用在标签中换行文本 |
QLabel 类的信号
linkActivated | 如果包含嵌入式超链接的标签被点击,则 URL 将打开。必须将 setOpenExternalLinks 功能设置为 true。 |
linkHovered | 当鼠标悬停在包含嵌入式超链接的标签上时,与此信号关联的槽方法将被调用。 |
示例
在此示例中,QLabel 对象 l2 和 l4 的标题包含超链接。l2 的 setOpenExternalLinks 设置为 true。因此,如果单击此标签,则关联的 URL 将在浏览器中打开。l4 的 linkHovered 信号连接到 hovered() 函数。因此,每当鼠标悬停在其上时,该函数都会执行。
QPixmap 对象从 python.jpg 文件准备屏幕外图像。它使用 setPixmap() 方法显示为标签 l3。
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * def window(): app = QApplication(sys.argv) win = QWidget() l1 = QLabel() l2 = QLabel() l3 = QLabel() l4 = QLabel() l1.setText("Hello World") l4.setText("TutorialsPoint") l2.setText("welcome to Python GUI Programming") l1.setAlignment(Qt.AlignCenter) l3.setAlignment(Qt.AlignCenter) l4.setAlignment(Qt.AlignRight) l3.setPixmap(QPixmap("python.jpg")) vbox = QVBoxLayout() vbox.addWidget(l1) vbox.addStretch() vbox.addWidget(l2) vbox.addStretch() vbox.addWidget(l3) vbox.addStretch() vbox.addWidget(l4) l1.setOpenExternalLinks(True) l4.linkActivated.connect(clicked) l2.linkHovered.connect(hovered) l1.setTextInteractionFlags(Qt.TextSelectableByMouse) win.setLayout(vbox) win.setWindowTitle("QLabel Demo") win.show() sys.exit(app.exec_()) def hovered(): print "hovering" def clicked(): print "clicked" if __name__ == '__main__': window()
输出
以上代码产生以下输出:
让我们看一些示例,并了解如何使用 QLabel。
使用 QLabel 显示文本
此 PyQt6 代码定义了一个简单的 GUI 应用程序,该应用程序包含一个显示 QLabel 小部件的单个窗口,其中包含文本“这是一个 QLabel 小部件”。窗口的标题设置为“PyQt Label Widget”,大小为 320x210 像素。QLabel 添加到 QVBoxLayout,然后将其设置为窗口的布局。
示例
以下是使用 QLabel 显示文本的图示。
import sys from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout class MainWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle('PyQt Label Widget') self.setGeometry(100, 100, 320, 210) label = QLabel('This is a QLabel widget') layout = QVBoxLayout() layout.addWidget(label) self.setLayout(layout) self.show() if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() sys.exit(app.exec())
输出
以上代码产生以下输出:
使用 QLabel 显示图像
要使用 QLabel 显示图像,请遵循以下步骤:
- 从 PyQt6.QtGui 导入 QPixmap。
- 使用图像文件的路径创建一个 QPixmap 对象。
- 创建一个 QLabel 小部件并使用 setPixmap() 设置 pixmap。
示例
以下是使用 QLabel 显示简单图像的图示。
import sys from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout from PyQt6.QtGui import QPixmap class MainWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle('PyQt Label Widget') self.setGeometry(100, 100, 320, 210) label = QLabel() pixmap = QPixmap('C:\\Users\\Lenovo\\Downloads\\tp-logo.png') label.setPixmap(pixmap) layout = QVBoxLayout() layout.addWidget(label) self.setLayout(layout) self.show() if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() sys.exit(app.exec())
输出
以上代码产生以下输出:
使用 QLabel 显示动画图像
此 PyQt6 代码创建一个标题为“PyQt QLabel Widget”的 GUI 窗口,尺寸为 320x210 像素。它使用 QMovie 支持的 QLabel 小部件显示动画 GIF('python.gif')。GIF 添加到 QVBoxLayout,用作窗口的布局,应用程序进入主事件循环,直到窗口关闭,确保连续播放动画。
示例
以下是使用 QLabel 显示动画图像的图示。
import sys from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout from PyQt6.QtGui import QMovie class MainWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle('PyQt QLabel Widget') self.setGeometry(100, 100, 320, 210) label = QLabel() movie = QMovie('C:\\Users\\Lenovo\\Downloads\\geometric.gif') label.setMovie(movie) movie.start() layout = QVBoxLayout() layout.addWidget(label) self.setLayout(layout) self.show() if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() sys.exit(app.exec())
输出
以上代码产生以下输出: