PyQt5——QLabel

QLabel


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

QLabel类中常用的方法

setAlignment()

按固定值方式对齐文本

  • Qt.AlignLeft 水平方向左对齐
  • Qt.AlignRight 水平方向右对齐
  • Qt.AlignCenter 水平方向居中对齐
  • Qt.AlignJustify 水平方向调整间距两端对齐
  • Qt.AlignTop 垂直方向靠上对齐
  • Qt.AlignBottom 垂直方向靠下对齐
  • Qt.AlignVCenter 垂直方向居中对齐

setIndent()

设置文本缩进值

setPixmap()

设置QLabel为一个Pixmap图片

text()

获得QLabel的文本内容

setText()

设置QLabel的文本内容

selectText()

返回所选择的字符

setBuddy()

设置QLabel的助记符及buddy(伙伴),即使用QLabel设置快捷键,会在快捷键后将焦点设置其buddy上,这里用到了QLabel的交互控件功能,此外,buddy可以是任何一个Widget控件。

setWordWrap()

设置是否运行换行

QLabel类中常用的信号

linkActived

当单击标记中嵌入的超链接,系统在新窗口中打开这个超链接,setOpenExternLinks特性必须设置为true

linkHovered

当鼠标指针滑过标签中嵌入的超链接时,需要用槽函数与这个信号进行绑定。

显示QLabel标签

# -*- coding: utf-8 -*-

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().__init__()
        label1 = QLabel(self)
        label2 = QLabel(self)
        label3 = QLabel(self)
        label4 = QLabel(self)
        # 初始化标签控件
        label1.setText("这是一个文本标签。")
        label1.setAutoFillBackground(True)
        palette = QPalette()
        palette.setColor(QPalette.Window, Qt.blue)
        label1.setPalette(palette)
        label1.setAlignment(Qt.AlignCenter)

        label2.setText("欢迎使用Python 应用")

        label3.setAlignment(Qt.AlignCenter)
        label3.setToolTip("这是一个图片标签")
        label3.setPixmap(QPixmap("./images/python.jpg"))

        label4.setText("欢迎访问绝尘的博客")
        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)

        # 允许label1访问超链接
        label1.setOpenExternalLinks(True)

        label4.setOpenExternalLinks(True)
        label4.linkActivated.connect(link_clicked)

        # 滑过文本框绑定槽事件
        label2.linkHovered.connect(link_hovered)
        label1.setTextInteractionFlags(Qt.TextSelectableByMouse)
        self.setLayout(vbox)
        self.setWindowTitle("QLabel 例子")

def link_hovered():
    print("当鼠标滑过label-2标签时,触发事件")

def link_clicked():
    print("当鼠标点击label-4标签时,触发事件")

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

其中代码的部分设置文本标签居中显示

label1.setAlignment(Qt.AlignCenter)

PyQt5——QLabel_第2张图片

QLabel 标签快捷键的使用

# -*- coding: utf-8 -*-

from PyQt5.QtWidgets import *
import sys

class QlabelDemo(QDialog):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("QLabel 例子")
        nameLb1 = QLabel("&Name", self)
        nameEd1 = QLineEdit(self)
        nameLb1.setBuddy(nameEd1)
        nameLb2 = QLabel("&Password", self)
        nameEd2 = QLineEdit(self)
        nameLb2.setBuddy(nameEd2)

        btnOk = QPushButton('&OK')
        btnCancel = QPushButton("&Cancel")
        mainLayout = QGridLayout(self)
        mainLayout.addWidget(nameLb1, 0, 0)
        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)

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

PyQt5——QLabel_第3张图片

在弹出的窗口中,按Alt+N快捷键可以切换到第一个文本框。

你可能感兴趣的:(Python)