欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-28 11:03:04
...

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_())

效果如下
PyQt5基本控件详解之QLabel(三)
单击标签4会打开超链接的网址,这里设置的是百度,效果如下
PyQt5基本控件详解之QLabel(三)

实例二: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_())

  • 效果如下:
    PyQt5基本控件详解之QLabel(三)
    可以使用快捷键快速定位到相关位置
    Alt+Q:定位到qq文本输入框
    ………………
    其他都可以用快捷键进行操作,可以自己尝试一下,这里就不一一细说了

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

相关标签: PyQt5 QLabel