PyQt5基本控件详解之QLabel(三)

QLabel

  • QLabel的作用:
    • 占位符
    • 显示文本
    • 显示图片
    • 放置gif动画
    • 超链接
    • 提示标记

Qlabel常用方法

方法描述
setAlignment()按固定值方式对齐文本
Qt.AlignLeft:水平方向靠左对齐
Qt.AlignRight:水平方向靠右对齐
Qt.AlignCenter:水平方向居中对齐
Qt.AlignJustify:水平方向调整间距两端对齐
Qt.AlignTop:垂直方向靠上对齐
Qt.AlignBottom:垂直方向靠下对齐
Qt.AlignVCenter:垂直方向居中对齐
serIndent()设置文本缩进值
setPixmap()设置QLabel为一个Pixmap图片
text()获得Qlabel的文本内容
setText()设置Qlabel的文本内容
selectedText()返回所选择的字符
setBuddy()设置QLabel的助记符及buddy(伙伴),及使用Qlabel设置快捷键,会在快捷键后将焦点设置到其buddy上,这里用到了Qlabel的交互控件功能 ,此外,buddy可以是任何一个widget控件,使用setBuddy(QWidget*)设置,其Qlabel必须是文本内容,并且使用“&”符号设置了助记符
setWordWrap()设置是否允许换行

Qlabel类中的常用信号

信号描述
linkActiveted当单击标签中的超链接,希望在新窗口打开这个超链接时,setOpenExternalLinks特性必须设置为True,即setOpenExternalLinks(True)
linkHovered当鼠标指针滑过标签中嵌入的超链接时,需要用槽函数与这个信号进行绑定

实例一:显示QLabel标签

实现的功能:
- 标签1用于文本居中显示,并添加背景属性
- 标签2显示文本,并当鼠标滑过时会在控制台输出当用鼠标点击label2标签时,触发事件
- 标签3加载背景图片,并添加提示信息,居中显示
- 标签4使用超链接,单击可以打开百度的网址,靠右对齐

from PyQt5.QtWidgets import QApplication,QLabel,QWidget,QVBoxLayout
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap,QPalette
import sys

class WindowDemo(QWidget):
    def __init__(self):
        super(WindowDemo, self).__init__()

        #创建4个标签
        label1=QLabel(self)
        label2=QLabel(self)
        label3=QLabel(self)
        label4=QLabel(self)

        #初始化标签控件

        #setText():设置Qlabel的文本内容
        label1.setText('这是一个文本标签')
        #标签1的背景填充更改为True,否则无法显示背景
        label1.setAutoFillBackground(True)
        #实例化背景对象,进行相关背景颜色属性设置
        palette=QPalette()
        palette.setColor(QPalette.Window,Qt.blue)
        #标签1加载背景
        label1.setPalette(palette)
        #设置文本居中显示
        label1.setAlignment(Qt.AlignCenter)


        #设置标签2的显示文本
        label2.setText("<a href='#'>欢迎使用python gui应用</a>")
        #标签3居中
        label3.setAlignment(Qt.AlignCenter)
        #设置标签3的提示信息
        label3.setToolTip('这是一个图片标签')
        #标签3的背景图片加载
        label3.setPixmap(QPixmap("E:\pyqt5快速开发与实战\第四章\images\python.jpg"))

        #设置标签4的文本,含有超链接
        label4.setText("<A href='www.baidu.com'>欢迎百度</a>")
        #标签4靠右
        label4.setAlignment(Qt.AlignRight)
        #设置提示信息
        label4.setToolTip('这是一个超链接标签')

        #在窗口布局中添加控件

        #垂直布局相关属性设置
        vbox=QVBoxLayout()
        #添加标签到垂直布局中
        vbox.addWidget(label1)
        #鼠标垂直拉伸不会改变高度
        vbox.addStretch()
        vbox.addWidget(label2)
        vbox.addStretch()
        vbox.addWidget(label3)
        vbox.addStretch()
        vbox.addWidget(label4)
        vbox.addStretch()

        #允许label1控件访问超链接
        label1.setOpenExternalLinks(True)
        #默认不允许访问超链接,需要使用setOpenExternalLinks(True)允许

        #运行访问超链接
        label4.setOpenExternalLinks(True)
        #点击文本框绑定槽函数
        label4.linkActivated.connect(self.link_clicked)

        #滑过文本框绑定槽函数事件
        label2.linkHovered.connect(self.link_hovered)
        label1.setTextInteractionFlags(Qt.TextSelectableByMouse)

        #加载布局:前面设置好的垂直布局
        self.setLayout(vbox)
        #设置标题
        self.setWindowTitle('Qlabel例子')

    def link_hovered(self):
        print('当用鼠标点击label2标签时,触发事件')

    def link_clicked(self):
        print('当用鼠标点击label4标签时,触发事件')
if __name__ == '__main__':
    app=QApplication(sys.argv)
    win=WindowDemo()
    win.show()
    sys.exit(app.exec_())

效果如下
这里写图片描述
单击标签4会打开超链接的网址,这里设置的是百度,效果如下
这里写图片描述

实例二:Qlabel标签快捷键的使用

实现功能:
可以使用快捷键快速定位到相关绑定的伙伴控件
- 创建两个标签与两个文本单行输入框
- 添加快捷键与伙伴关系绑定
- 创建两个按钮,添加快捷键
- 栅格布局添加控件并设置有关的属性

快捷键的使用,举例说明
nameLb2 = QLabel(‘&Password’, self)
“&”后面加的第一个首字母大写,这是我们一会儿用到的快捷键,
使用方式是Alt+&后面大写的第一个字母
这里正确的使用方式是Alt+P就可以快速定位到所绑定的伙伴控件上,后面的快捷键使用类似

from PyQt5.QtWidgets import *
import sys

class QLabelDemo(QDialog):
    def __init__(self):
        super(QLabelDemo, self).__init__()

        #设置标题
        self.setWindowTitle('Qlabel例子')
        #设置标签1的内容,并添加快捷键Alt+Q
        nameLb1=QLabel('&QQ',self)
        #建立单行文本输入框
        nameEd1=QLineEdit(self)
        #标签与文本框继续绑定,按快捷键Alt+Q可以定位到单行输入框
        nameLb1.setBuddy(nameEd1)

        #与前面相同
        nameLb2 = QLabel('&Password', self)
        nameEd2 = QLineEdit(self)
        nameLb2.setBuddy(nameEd2)

        #创建两个按钮,ok与cancel并添加快捷键
        btnok=QPushButton('&OK')
        btnCancel=QPushButton('&Cancel')

        #窗口布局栅格,分为一个个的格子,部件放在格子内
        mainLayout=QGridLayout(self)



        #布局内标签初始坐标设置(标签,格子0行,格子0列)默认标签大小显示
        mainLayout.addWidget(nameLb1,0,0)
        #文本框初始坐标设置(文本输入框,格子0行,格子1列,所占位置起始格子1,结束格子2)
        mainLayout.addWidget(nameEd1,0,1,1,2)

        mainLayout.addWidget(nameLb2, 1, 0)
        mainLayout.addWidget(nameEd2, 1, 1, 1, 2)

        mainLayout.addWidget(btnok, 2, 1)
        mainLayout.addWidget(btnCancel, 2, 2)

    def link_hovered(self):
        print('当用鼠标点击label2标签时,触发事件')

    def link_clicked(self):
        print('当用鼠标点击label4标签时,触发事件')
if __name__ == '__main__':
    app=QApplication(sys.argv)
    win=QLabelDemo()
    win.show()
    sys.exit(app.exec_())

  • 效果如下:
    这里写图片描述
    可以使用快捷键快速定位到相关位置
    Alt+Q:定位到qq文本输入框
    ………………
    其他都可以用快捷键进行操作,可以自己尝试一下,这里就不一一细说了

源码以及相关文件下载:https://download.csdn.net/download/jia666666/10597897

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jia666666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值