PyQt5 QLabel标签类的使用

QLabel 对象作为一个占位符可以显示不可编辑的文本或图片,也可以放置一个gif动画,还可以被用来提示标记为其他控件。纯文本、链接或富文本都可以显示在QLabel标签上。

QLabel 类中常用的方法:

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

信号描述
linkActivated当点击标签中嵌入的超链接,希望在新窗口中打开这个超链接时,setOpenExternalLinks特性必须设置为true
linkHovered当鼠标指针滑过标签中嵌入的超链接时,需要用槽函数与这个信号进行绑定
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QToolTip, \
                    QPushButton, QLabel, QVBoxLayout
from PyQt5.QtCore import QCoreApplication, Qt
from PyQt5.QtGui import QIcon, QFont, QPixmap, QPalette


class Label(QWidget):
    def __init__(self):
        super(Label, self).__init__()
        self.initUI()

    def initUI(self):
        # 气泡提示
        QToolTip.setFont(QFont('楷体', 10))
        # self.setToolTip('这是一个气泡提示')

        # 定义一个按钮
        btn1 = QPushButton('关闭窗口', self)
        btn1.resize(btn1.sizeHint())
        btn1.setToolTip('单击按钮程序将会<b>退出</b>!')
        btn1.clicked.connect(QCoreApplication.instance().quit)

        # 定义Label
        label_1 = QLabel(self)
        label_1.setAlignment(Qt.AlignCenter)    # 设置Label 水平居中对齐
        label_1.setText('PyQt5 例子大全')
        label_1.setAutoFillBackground(True)
        label_1.setStyleSheet("color: #fff;font-size: 25px; padding: 12px")
        palette = QPalette()
        palette.setColor(QPalette.Window, Qt.blue)
        label_1.setPalette(palette)

        label_2 = QLabel(self)
        label_2.setScaledContents(True)
        label_2.setPixmap(QPixmap('./images/1.jpg'))

        label_3 = QLabel(self)
        label_3.setOpenExternalLinks(True)
        label_3.setText("<a href='https://www.z10.xin'>中心线</a>")
        label_3.setAlignment(Qt.AlignRight)
        label_3.setStyleSheet("background: #4a3;font-size: 18px")
        
        label_4 = QLabel(self)
        label_4.setText("<a href='https://www.z10.xin'>PyQt5 实例代码</a>")
        label_4.setOpenExternalLinks(False)
        label_4.linkActivated.connect(self.link_clicked)
        label_4.linkHovered.connect(self.link_hovered)
        
        # 定义一个垂直布局
        vbox = QVBoxLayout()
        vbox.addWidget(btn1)
        vbox.addStretch()
        vbox.addWidget(label_1)
        vbox.addStretch()
        vbox.addWidget(label_2)
        vbox.addStretch()
        vbox.addWidget(label_3)
        vbox.addStretch()
        vbox.addWidget(label_4)

        # 设置主窗口布局
        self.setLayout(vbox)

        self.setGeometry(300, 300, 550, 450)
        self.setMinimumSize(550, 450)
        # self.setMaximumSize(650, 450)
        self.setVisible(True)
        self.setWindowTitle('程序图标演示')
        self.setWindowIcon(QIcon('./images/2.ico'))
    
    def link_clicked(self):
        print('鼠标点击事件')
    
    def link_hovered(self):
        print('鼠标滑过事件')



if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = Label()
    win.show()
    sys.exit(app.exec_())

除非注明,否则均为中心线原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.z10.xin/648.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注