一、标签控件
QLabel 控件,又称为 标签控件,它主要用于显示用户不能编辑的文本,标识窗体上的对象(例如,给文本框、列表框添加描述信息等)。
我们可以在终端中使用 pip 安装 pyside6 模块。
pip install pyside6
label = QLabel()
创建好的标签控件,我们可以调用 show()
方法显示出来,但这样的话,标签控件会独立显示。如果,我们想标签控件显示在指定的窗口中,我们可以为标签控件调用 setParent(parent)
方法指定一个父窗口。如果父窗口显示的话,那么该标签控件也会显示出来。
label.setParent(w)
我们可以在 Qt Designer 中设计器的属性编辑器中的 text
属性来设置标签控件的显示文本,也可以直接通过 Python 代码调用 QLabel 类的 setText(text)
方法来设置属性文本。
label.setText("标签的显示文本")
以上的步骤,我们可以简化为一个步骤,即在创建标签控件的同时,指定它的显示文本和父窗口。
label = QLabel("我是一个标签", w)
PySide6 中还支持标签中文本的对齐方式,主要用到 alignment
属性。在 Qt Designer 设计器的属性编辑器中展开 alignment
属性,可以看到有两个值,分别为:Horizontal
和 Vertical
。
其中,Horizontal 用来设置标签文本的水平对齐方式,取值 4 个:
Qt.AlignLeft # 左对齐
Qt.AlignCenter # 水平居中对齐
Qt.AlignRight # 右对齐
Qt.AlignJustify # 两端对齐
Vertical 用来设置标签文本的垂直对齐方式,取值有 3 个:
Qt.AlignTop # 顶部对齐
Qt.AlignVCenter # 垂直居中对齐
Qt.AlignBottom # 底部对齐
如果使用 Python 代码设置 Label 标签文本的对齐方式,需要用到 QLabel 类的 setAlignment(arg__1)
方法。
label.setAlignment(Qt.AlignCenter | Qt.AlignVCenter)
在标签宽度不足的情况下,系统会默认只显示部分文字。此时,我们可以设置标签文本换行显示。如果使用 Qt Designer 的话,只需要把标签控件的属性编辑器中的 wordWrap
属性的复选框勾选上即可。如果使用 Python 代码设置标签文本的换行显示,需要用到 QLabel 类的 setWordWrap(on)
方法。
label.setWordWrap(True)
如果,我们获取标签的文本,可以通过使用 QLable 类的 text()
方法来获取文本。
text = label.text()
我们还可以为标签设置超链接,在使用 QLable 类中的 setText(text)
方法时,使用 HTML 的 <a>
标签设置超链接文本,然后将 Label 标签中的 setOpenExternalLinks(open)
方法设置为 True,以便允许访问超链接。
label.setText("<a href='https://www.baidu.com'>百度</a>")
我们还可以为标签设置显示图片,需要使用 QLable 类的 setPixmap(arg__1)
方法。该方法需要有一个 QPixmap
对象,表示图标对象。
from PySide6.QtGui import QPixmap
label.setPixmap(QPixmap("1.ico"))
QLable 类的常用方法如下:
# 实例方法
text() -> str # 获取QLabel的文字
setTextFormat(format:Qt.TextFormat) -> None # 设置QLabel的文字格式
setParent(parent:QWidget) -> None # 设置标签控件所在的父容器
setSelection(arg__1:int, arg__2:int) -> None # 设置选中文字的范围
selectedText() -> str # 获取选中的文字
hasSelectedText() -> bool # 判断是否选中文字
setIndent(arg__1) -> None # 设置缩进
indent() -> int # 获取缩进
pixmap() -> QPixmap # 获取QLabel的图片
setToolTip(arg__1:str) -> None # 设置标签的提示文字
setWordWrap(on:bool) -> None # 设置是否自动换行
setAlignment(aligement:Qt.Alignment) -> None # 设置标签文字的对齐方式
setOpenExternalLinks(open:bool) -> None # 设置是否打开外部链接
setFont(font:QFont) -> None # 设置标签文字的字体
font() -> QFont # 获取标签文字的字体
setPalette(palette:QPalette) -> None # 设置调色板
palette() -> QPalette # 获取调色板
setGeometry(rect:QRect) -> None # 设置标签的大小和位置
geometry() -> QRect # 获取标签的大小和位置
minimumSizeHint() -> QSize # 获取标签的最小尺寸
setScaledContents(arg__1:bool) -> None # 设置显示的图片是否充满整个标签控件
setMargin(arg__1:int) -> None # 设置标签的边距
setBuddy(arg__1:QWidget) -> None # 设置标签的伴随控件
buddy() -> QWidget # 获取标签的伴随控件
# 槽方法
setText(text:str) -> None # 设置显示的文字
setNum(num:Union[int,float]) -> None # 设置显示的数字
clear() -> None # 清空显示的内容
setPixmap(pixmap:QPixmap) -> None # 设置显示的图片
setPicture(picture:QPicture) -> None # 设置显示的图片
setMovie(movie:QMovie) -> None # 设置显示的动画
setEnabled(arg__1:bool) -> None # 设置标签控件是否可用
QLable 类的常用信号有两个:linkActivated
和 linkHovered
。linkActivated 信号会在当单击标签中嵌入的超链接时发送信号,linkHovered 信号会在鼠标指针滑过标签中嵌入的超链接时发射信号。如果我们希望在新窗口中打开这个超链接时,setOpenExternalLinks(open)
方法必须设置为 True
。
linkActivated(link) # 单击标签中嵌入的超链接时发送信号
linkHovered(link) # 鼠标指针滑过标签中嵌入的超链接时发射信号
import sys
from PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtWidgets import QLabel
from PySide6.QtGui import QPixmap, QFont
from PySide6.QtCore import Qt, QRect
class MyWidget(QWidget):
def __init__(self):
# 1.调用父类Qwidget类的__init__()方法
super().__init__()
# 2.调用setupUi()方法初始化页面
self.setup_ui()
def setup_ui(self):
# 1.设置窗口对象大小
self.setFixedSize(600, 400)
w = self.width()
h = self.height()
print(f"w: {w}, h: {h}")
# 2.创建标签控件
self.label1 = QLabel(self)
self.label2 = QLabel(self)
self.label1.setGeometry(QRect(0, 0, w, h))
# 3.设置标签控件的图片
self.label1.setPixmap(QPixmap("assets/images/1.jpg"))
self.label2.setGeometry(QRect(w//2-150, 150, 300, 30))
# 4.设置标签控件的字体
font = QFont("黑体", pointSize=20)
self.label2.setFont(font)
# 5.设置要显示的文本
self.label2.setText("<a href='https://www.baidu.com'>百度</a>")
# 6.设置鼠标悬停时的提示信息
self.label2.setToolTip("百度")
# 7.设置标签文本的对齐方式
self.label2.setAlignment(Qt.AlignmentFlag.AlignCenter)
# 8.允许跳转外部网站,此时linkActivated信号无效
self.label2.setOpenExternalLinks(True)
# 9.定义信号与槽的连接
self.label2.linkHovered.connect(self.horver)
self.label2.linkActivated.connect(self.activated)
def horver(self, link):
print(f"欢迎查看【{link}】链接")
def activated(self, link):
print(f"你点击了【{link}】链接")
if __name__ == "__main__":
# 1.创建一个QApplication类的实例
app = QApplication(sys.argv)
# 2.创建一个窗口
window = MyWidget()
# 3.展示窗口
window.show()
# 4.进入程序的主循环并通过exit()函数确保主循环安全结束
sys.exit(app.exec())
标签:__,控件,None,06,标签,self,设置
From: https://www.cnblogs.com/FlurryHeart/p/18613399