QLabel 标签控件
# 创建对象的同时设置父控件,设置窗口标志位
QLabel(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())
# 创建对象的同时设置默认文本和父控件,设置窗口标志位
QLabel(str, parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())
setText(str) # 设置标签文本内容
setPixmap(QPixmap) # 通过QPixmap对象设置标签内容为图片
setAlignment(Qt.Alignment) # 设置控件内容对齐方式
alignment() -> Qt.Alignment # 获取控件内容对齐方式
# 参数:Qt.Alignment
# Qt.AlignTop # 垂直居上
# Qt.AlignBottom # 垂直居下
# Qt.AlignVCenter # 垂直居中
# Qt.AlignRight # 水平居右
# Qt.AlignLeft # 水平居左
# Qt.AlignCenter # 水平居中
# 同时设置水平方向和垂直方向则通过按位或("|")连接即可
setIndent(int) # 设置内容左右缩进,根据对齐方式确定左右
indent() -> int # 获取内容左右缩进
setMargin(int) # 设置控件内容区域与边框四周的边距
margin() -> int # 获取控件内容区域与边框四周的边距
setTextFormat(Qt.TextFormat) # 设置文本内容显示格式
textFormat()
# 参数:Qt.TextFormat
# Qt.PlainText # 文本字符串被解释为纯文本字符串。
# Qt.RichText # 文本字符串被解释为富文本字符串。有关富文本的定义,请参阅支持的HTML子集。
# Qt.AutoText # 自动识别是否是富文本
# 给标签控件绑定小伙伴之后,通过按下标签控件设置的快捷键,可以让其小伙伴获取到焦点
setBuddy(QWidget buddy) # 给标签控件绑定一个小伙伴控件,标签控件的快捷键会作用在小伙伴身上
buddy() -> QWidget # 获取标签控件的小伙伴
setScaledContents(bool) # 设置是否缩放内容, 适应控件大小(仅针对于图片有效)
hasScaledContents() -> bool # 获取是否设置缩放适应控件大小
# 图片按照控件尺寸调整,图片会失去纵横比(导致图片变形)
setTextInteractionFlags(Qt.TextInteractionFlags flags) # 设置文本控件的交互标志
textInteractionFlags() -> Qt.TextInteractionFlags # 获取文本控件的交互标志
# 参数:Qt.TextInteractionFlag
# Qt.NoTextInteraction # 不可能与文本进行交互。
# Qt.TextSelectableByMouse # 可以使用鼠标选择文本并使用上下文菜单(右键菜单)或标准键盘快捷键将其复制到剪贴板。
# Qt.TextSelectableByKeyboard # 可以使用键盘上的光标键选择文本。显示文本光标。
# Qt.LinksAccessibleByMouse # 可以使用鼠标突出显示链接(激活需要设置允许打开外部链接)
# Qt.LinksAccessibleByKeyboard # 可以使用选项卡(Tab键)聚焦链接(使用enter激活需要设置允许打开外部链接)
# Qt.TextEditable # 该文字完全可编辑。需要同时设置可被选中才可以被编辑
# Qt.TextEditorInteraction # 文本编辑器的默认值。
# 等同于同时设置:TextSelectableByMouse | TextSelectableByKeyboard | TextEditable
# Qt.TextBrowserInteraction # QTextBrowser的默认值。
# 等同于同时设置:TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard
setOpenExternalLinks(bool open) # 是否允许打开外部链接(超链接)
# 要打开超级链接还需要同时设置文本交互标志为 Qt.LinksAccessibleByMouse 或 Qt.LinksAccessibleByKeyboard
# 当设置了文本交互标志位文字可编辑(setTextInteractionFlags(Qt.TextEditable))时,该设置将无效
openExternalLinks() -> bool # 获取是否设置可以打开外部链接
setSelection(int start, int length) # 设置选中文本start开始索引,length指定选中几位
hasSelectedText() -> bool # 判断是否选中文本
selectedText() -> str # 获取选中的文本
selectionStart() -> int # 获取选中文本的起始索引号
setWordWrap(bool on) # 设置单个单词是否允许换行
wordWrap() -> bool # 获取单个单词是否允许换行
# 通过'\n'.join(str)的方式可以将整个文本纵向排列
text() -> str # 获取标签控件的文本内容
setText(QString) # 设置标签控件显示文本内容
# 通过html标签添加图片
setText("")
# 通过html标签添加超链接
setText("百度一下")
setNum(int num) # 设置int类型数据
setNum(double num) # 设置double类型数据
setPicture(QPicture) # 通过QPicture设置图形图像,会保持绘画属性
picture() -> QPicture # 获取图形图像,返回QPicture对象
# QPicture对象需要先设置画家、画笔操作
setPixmap(QPixmap) # 通过QPixmap对象设置图形图像
pixmap() -> QPixmap # 获取图形图像,返回QPixmap对象
setMovie(QMovie movie) # 通过QMovie对象设置动画,此类用于显示没有声音的简单动画,不能放电影等
movie() -> QMovie # 获取动画,返回QMovie对象
# QMovie对象常用操作
setScaledSize(QSize) # 设置屏幕大小
setPaused(bool) -> void # 设置是否暂停
setSpeed(int percentSpeed) # 设置播放倍速(100为1倍速)
# 例如:setSpeed(200) 设置播放速度为两倍速
start() # 开始播放,动图添加之后需要设置播放才能显示
stop() # 暂停播放
clear() # 清空内容
linkHovered(link_str) # 鼠标放在超链接上时发射该信号,传递超链接url
# 鼠标滑入会传递参数,滑出不会传递参数
linkActivated(link_str) # 超链接被激活时发射该信号,传递超链接url
# 当设置了允许打开外部链接(setOpenExternalLinks(True))时,将不会发射该信号
from PyQt5.Qt import *
import sys
class Windows(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('QLabel-功能作用')
self.resize(500, 800)
self.widget_list()
def widget_list(self):
self.add_widget()
def add_widget(self):
pass # 构造方法
# label1 = QLabel(self)
# label2 = QLabel('标签控件', self)
#
# label1.move(50, 50)
# label1.setText('这是标签控件1')
# label2.move(50, 100)
pass # 对齐方式
# label = QLabel('标签控件对齐方式', self)
# label.resize(300, 300)
# label.setStyleSheet('background-color: cyan;')
# label.move(50, 50)
# label.setAlignment(Qt.AlignTop) # 垂直居上
# label.setAlignment(Qt.AlignBottom) # 垂直居下
# label.setAlignment(Qt.AlignVCenter) # 垂直居中
# label.setAlignment(Qt.AlignRight) # 水平居右
# label.setAlignment(Qt.AlignLeft) # 水平居左
# label.setAlignment(Qt.AlignCenter) # 水平居中
pass # 缩进和边距
# 设置缩进
# label1 = QLabel('label1缩进设置', self)
# label1.move(50, 50)
# label1.resize(200, 100)
# label1.setStyleSheet('background-color: cyan;')
# label1.setAlignment(Qt.AlignLeft)
#
# label1.setIndent(20)
# 设置边距
# label2 = QLabel('label2边距设置', self)
# label2.move(50, 170)
# label2.resize(200, 100)
# label2.setStyleSheet('background-color: yellow;')
# label2.setAlignment(Qt.AlignLeft)
#
# label2.setMargin(20)
pass # 设置文本格式
# label1 = QLabel(self)
# label2 = QLabel(self)
# label3 = QLabel(self)
#
# label1.resize(400, 100)
# label2.resize(400, 100)
# label3.resize(400, 100)
# label1.move(50, 50)
# label2.move(50, 170)
# label3.move(50, 290)
#
# label1.setStyleSheet('background-color: cyan;')
# label2.setStyleSheet('background-color: yellow;')
# label3.setStyleSheet('background-color: green;')
#
# label1.setText('百度一下')
# label2.setText('百度一下')
# label3.setText('百度一下')
#
# label1.setTextFormat(Qt.PlainText) # 设置文本字符串被解释为纯文本字符串
# label2.setTextFormat(Qt.RichText) # 文本字符串被解释为富文本字符串
# label3.setTextFormat(Qt.AutoText) # 自动识别是否是富文本
pass # 绑定小伙伴
# 创建QLabel对象的同时设置文本内容和快捷键字母(ALT+字母)
# label1 = QLabel('账号(&U):', self)
# label2 = QLabel('账号(&M):', self)
# led1 = QLineEdit(self)
# led2 = QLineEdit(self)
#
# label1.move(100, 100)
# led1.move(180, 100)
# label2.move(100, 150)
# led2.move(180, 150)
#
# label1.setBuddy(led1) # 为label1绑定小伙伴
# label2.setBuddy(led2) # 为label2绑定小伙伴
pass # 设置内容缩放(仅对图片有效)
# label1 = QLabel(self)
# label2 = QLabel(self)
#
# label1.resize(400, 200)
# label2.resize(400, 200)
#
# label1.move(50, 50)
# label2.move(50, 270)
#
# label1.setStyleSheet('background-color: cyan;')
# label2.setStyleSheet('background-color: yellow;')
#
# label1.setPixmap(QPixmap('../images/jpg/1.jpg'))
# label2.setPixmap(QPixmap('../images/jpg/1.jpg'))
#
# label2.setScaledContents(True) # 设置开启图片根据控件大小自动缩放
pass # 文本交互标志(是否允许被选中/编辑)
# label1 = QLabel(self)
# label2 = QLabel(self)
# label3 = QLabel(self)
# label4 = QLabel(self)
# label5 = QLabel(self)
# label6 = QLabel(self)
#
# label1.resize(400, 50)
# label2.resize(400, 50)
# label3.resize(400, 50)
# label4.resize(400, 50)
# label5.resize(400, 50)
# label6.resize(400, 50)
#
# label1.move(50, 50)
# label2.move(50, 110)
# label3.move(50, 170)
# label4.move(50, 230)
# label5.move(50, 290)
# label6.move(50, 350)
#
# label1.setStyleSheet('background-color: cyan;')
# label2.setStyleSheet('background-color: cyan;')
# label3.setStyleSheet('background-color: cyan;')
# label4.setStyleSheet('background-color: cyan;')
# label5.setStyleSheet('background-color: cyan;')
# label6.setStyleSheet('background-color: cyan;')
#
# label1.setText('百度一下')
# label2.setText('百度一下')
# label3.setText('百度一下')
# label4.setText('百度一下')
# label5.setText('百度一下')
# label6.setText('百度一下')
# # label6.setText('百度一下')
#
# label1.setTextInteractionFlags(Qt.NoTextInteraction)
# label2.setTextInteractionFlags(Qt.TextSelectableByMouse)
# label3.setTextInteractionFlags(Qt.TextSelectableByKeyboard)
# label4.setTextInteractionFlags(Qt.LinksAccessibleByMouse)
# label5.setTextInteractionFlags(Qt.LinksAccessibleByKeyboard)
# label6.setTextInteractionFlags(Qt.TextEditable | Qt.TextSelectableByKeyboard)
#
# # 允许打开外部链接(需要同时设置允许被选中才有效)
# label1.setOpenExternalLinks(True)
# label2.setOpenExternalLinks(True)
# label3.setOpenExternalLinks(True)
# label4.setOpenExternalLinks(True)
# label5.setOpenExternalLinks(True)
# label6.setOpenExternalLinks(True)
pass # 设置选中文本(需要设置文本交互标志为可被选中状态)
# label1 = QLabel('设置选中文本1', self)
# label2 = QLabel('设置选中文本2', self)
#
# label1.resize(400, 50)
# label2.resize(400, 50)
#
# label1.move(50, 50)
# label2.move(50, 110)
#
# # label1.setTextInteractionFlags(Qt.TextSelectableByMouse)
# label1.setTextInteractionFlags(Qt.TextSelectableByKeyboard)
# label1.setSelection(1, 3)
# label1.setFocus()
pass # 设置单词允许换行
# lab1 = QLabel('设置单词允许换行'*5, self)
# label2 = QLabel('asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf', self)
#
# lab1.resize(150, 50)
# label2.resize(150, 50)
#
# lab1.move(50, 50)
# label2.move(50, 110)
#
# lab1.setStyleSheet('background-color: cyan;')
# label2.setStyleSheet('background-color: cyan;')
#
# lab1.setWordWrap(True)
pass # 内容操作
# label1 = QLabel(self)
# label2 = QLabel(self)
# label3 = QLabel(self)
# label4 = QLabel(self)
# label5 = QLabel(self)
# label6 = QLabel(self)
# label7 = QLabel(self)
# label8 = QLabel(self)
#
# label1.resize(400, 50)
# label2.resize(400, 50)
# label3.resize(400, 90)
# label4.resize(400, 50)
# label5.resize(400, 50)
# label6.resize(400, 100)
# label7.resize(400, 100)
# label8.resize(400, 200)
#
# label1.move(50, 10)
# label2.move(50, 70)
# label3.move(50, 130)
# label4.move(50, 230)
# label5.move(50, 290)
# label6.move(50, 350)
# label7.move(50, 460)
# label8.move(50, 580)
#
# label1.setStyleSheet('background-color: cyan;')
# label2.setStyleSheet('background-color: cyan;')
# label3.setStyleSheet('background-color: cyan;')
# label4.setStyleSheet('background-color: cyan;')
# label5.setStyleSheet('background-color: cyan;')
# label6.setStyleSheet('background-color: cyan;')
# label7.setStyleSheet('background-color: cyan;')
# label8.setStyleSheet('background-color: cyan;')
#
# label1.setText('内容操作')
# label2.setText('百度一下')
# label3.setText("")
# label4.setNum(888)
# label5.setNum(999.999)
#
# label6.setPixmap(QPixmap("../images/jpg/1.jpg"))
#
# pic = QPicture()
# painter = QPainter(pic)
# painter.setBrush(QBrush(QColor(100,200,100)))
# painter.drawEllipse(0,0,200,200)
# label7.setPicture(pic)
#
# movie = QMovie("../images/gif/1.gif")
# label8.setMovie(movie)
#
# movie.start() # 开始播放
# movie.setSpeed(2000) # 设置播放倍速
# movie.setScaledSize(QSize(200,200)) # 设置屏幕大小
# movie.setPaused(True) # 设置是否暂停
# movie.stop() # 暂停播放
pass # 清空内容
# labe = QLabel('清空内容', self)
# btn = QPushButton('清空', self)
# labe.move(50, 50)
# btn.move(50, 100)
#
# btn.clicked.connect(labe.clear)
pass # 可用信号
label1 = QLabel(self)
label2 = QLabel(self)
label1.resize(400, 50)
label2.resize(400, 50)
label1.move(50, 50)
label2.move(50, 110)
label1.setStyleSheet('background-color: cyan;')
label2.setStyleSheet('background-color: cyan;')
label1.setText('百度一下')
label2.setText('百度一下')
label1.linkHovered.connect(lambda a:print('鼠标滑过了超链接', a))
label2.linkActivated.connect(lambda a:print('超链接被点击了', a))
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Windows()
window.show()
sys.exit(app.exec_())