PySide6 GUI 学习笔记——常用类及控件使用方法(标签控件QLabel)
文章目录
- 标签控件QLabel及其应用举例
- 标签控件QLabel的常用方法及信号
- 应用举例
- Python 代码示例1
- Python 代码示例2
- 小结
标签控件QLabel及其应用举例
QLabel 是 PySide6.QtWidgets 模块中的一个控件,用于在界面上显示文本或图像。它常用于作为标签、提示信息或图片展示。QLabel 支持丰富的文本格式(如 HTML)、自动换行、对齐方式设置,并可显示静态图片或动画(如 GIF)。
常用属性和方法包括:
setText()
:设置显示的文本内容。setPixmap()
:设置显示的图片。setAlignment()
:设置文本或图片的对齐方式。setWordWrap()
:设置是否自动换行。setTextFormat()
:设置文本格式(纯文本或富文本)。setBuddy()
:为标签设置伙伴控件,实现快捷键跳转。
QLabel 适用于需要静态文本或图片展示的场景,不支持用户编辑。更多详细信息可参考官方文档。
标签控件QLabel的常用方法及信号
方法名 | 说明 |
---|---|
setText(text) | 设置标签显示的文本内容 |
setPixmap(pixmap) | 设置标签显示的图片 |
setAlignment(alignment) | 设置文本或图片的对齐方式 |
setWordWrap(on) | 设置是否自动换行 |
setTextFormat(format) | 设置文本格式(纯文本或富文本) |
setBuddy(widget) | 设置伙伴控件,实现快捷键跳转 |
setScaledContents(scaled) | 设置图片是否自动缩放以适应标签大小 |
setOpenExternalLinks(open) | 设置是否允许点击超链接打开外部链接 |
text() | 获取当前显示的文本内容 |
pixmap() | 获取当前显示的图片 |
alignment() | 获取当前对齐方式 |
wordWrap() | 获取当前是否自动换行 |
textFormat() | 获取当前文本格式 |
buddy() | 获取当前伙伴控件 |
[slot] clear() | 清除标签内容 |
[slot] setNum(num) | 设置数字内容(int/float) |
[slot] setPicture(picture) | 设置QPicture对象为标签内容 |
[slot] setMovie(movie) | 设置QMovie动画为标签内容 |
[slot] setTextInteractionFlags(flags) | 设置文本交互标志 |
应用举例
Python 代码示例1
from PySide6.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout
from PySide6.QtCore import Qt
import sysapp = QApplication(sys.argv)window = QWidget()
window.setWindowTitle("QLabel 示例")label1 = QLabel("这是一个普通文本标签")
label2 = QLabel("<b>支持富文本显示</b>")
label2.setTextFormat(Qt.RichText)
label3 = QLabel()
label3.setText("多行文本自动换行演示。QLabel 可以根据窗口大小自动换行。")
label3.setWordWrap(True)layout = QVBoxLayout(window)
layout.addWidget(label1)
layout.addWidget(label2)
layout.addWidget(label3)window.setLayout(layout)
window.show()
app.exec()
Python 代码示例2
import sys
from PySide6.QtWidgets import QApplication,QWidget,QLabel
from PySide6.QtGui import QPixmap,QFont
from PySide6.QtCore import QRect,Qt,QSizeclass MyWidget(QWidget):def __init__(self,parent=None):super().__init__(parent)self.setFixedSize(QSize(600,400))w = self.width() #窗口的宽度h = self.height() #窗口高度self.label1 = QLabel(self)self.label2 = QLabel(self)self.label3 = QLabel(self)self.label4 = QLabel(self)self.label1.setGeometry(QRect(0, 0, w,h))self.label1.setPixmap(QPixmap("pic.png"))self.label2.setGeometry(QRect(int(w/2)-150,150,300,30))font = QFont("微软雅黑",pointSize = 18)self.label2.setFont(font)self.label2.setText("<A href='https://blog.csdn.net/Humbunklung'>欢迎来到我的CSDN博客!</A>")self.label2.setToolTip("我的博客 https://blog.csdn.net/Humbunklung") #设置提示信息self.label2.setAlignment(Qt.AlignCenter | Qt.AlignVCenter)self.label2.linkHovered.connect(self.hover) #定义信号与槽的链接self.label2.linkActivated.connect(self.activated) #定义信号与槽的链接self.label3.setGeometry(QRect(int(w/2),h-50,int(w/2),50))font = QFont("楷体",pointSize = 20)self.label3.setFont(font)self.label3.setText(">>进入我的<A href='https://blog.csdn.net/Humbunklung'>博客</A>")self.label3.setOpenExternalLinks(True)def hover(self,link): #鼠标经过超链接的关联函数print("欢迎来到我的博客!")def activated(self,link): #单击超链接的关联函数rect = self.label3.geometry()rect.setY(rect.y()-50)self.label4.setGeometry(rect)self.label4.setText("单击此链接,进入网站"+link)
if __name__ == '__main__':app=QApplication(sys.argv)window = MyWidget()window.show()sys.exit(app.exec())
小结
本文介绍了 PySide6 中 QLabel 控件的常用属性、方法及其应用场景,并通过两个 Python 代码示例演示了 QLabel 在文本、富文本、图片及超链接等方面的实际用法。QLabel 适合用于显示静态文本或图片,支持丰富的文本格式和交互功能,是 GUI 编程中常用的基础控件之一。