zoukankan      html  css  js  c++  java
  • QLabel

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

    QLabel是界面中的标签类,它继承自QFrame类。QLabel类的继承结构如下:

    QObject <—— QPaintDevice <—— QWidget <—— QFrame <—— QLabel

    QLabel类中的常用方法

      setAlignment()           按固定值方式对齐文本:

                  Qt.AlignLeft, 水平方向靠左对齐

                  Qt.AlignRight,水平方向靠右对齐

                  Qt.AlignCenter,水平方向居中对齐

                                             Qt.AlignJustify,水平方向调整间距两端对齐

                                             Qt.AlignTop,垂直方向靠上对齐

                                             Qt.AlignBottom,垂直方向靠下对齐

                                             Qt.AlignVCenter,垂直方向居中对齐

      setIndent()                 设置文本缩进值

      setPixmap()               设置QLabel的文本内容

      text()                          获得QLabel的文本内容

      setText()                    设置QLabel的文本内容

      selectedText()            返回所选择的字符

      setBuddy()                设置QLabel的助记符及buddy(伙伴),即使用QLable设置快捷键,会在快捷键后将焦点设置到其buddy上,这里用到了QLabel的交互控件功能。此外,buddy可以是任何一个Widget控件。使用setBuddy(QWidget*)设置,其QLabel必须是文本内容,并且使用“&”符号设置了助记符

      setWordWrap()         设置是否允许换行

    QLabel类中的常用信号

    linkActivated                   当单击标签中嵌入的超链接,希望在新窗口中打开这个超链接时,setOPenExternallLinks特性必须设置为true

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

    案例7  显示QLabel标签

    import sys
    from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout
    from PyQt5.QtCore import Qt
    from PyQt5.QtGui import QPixmap, QPalette
    
    
    class WindowDemo(QWidget):
        def __init__(self):
            super().__init__()
    
            label1 = QLabel(self)
            label2 = QLabel(self)
            label3 = QLabel(self)
            label4 = QLabel(self)
    
            # 1. 初始化标签控件
            label1.setText("这是一个文本标签")
            label1.setAutoFillBackground(True)
            palette = QPalette()
            palette.setColor(QPalette.Window, Qt.blue)
            label1.setPalette(palette)
            label1.setAlignment(Qt.AlignCenter)  # 设置文本标签居中显示
    
            label2.setText("<a href='#'>欢迎使用 Python GUI 应用</a>")
    
            label3.setAlignment(Qt.AlignCenter)
            label3.setToolTip("这是一个图片标签")
            label3.setPixmap(QPixmap("./images/python.jpg"))
    
            label4.setText("<a href='http://www.cnblogs.com/wangshuo1/'>欢迎访问信平的小屋</a>")
            label4.setAlignment(Qt.AlignCenter)
            label4.setToolTip("这是一个超链接标签")
    
            # 2. 在窗口布局中添加控件
            vbox = QVBoxLayout()
            vbox.addWidget(label1)
            vbox.addStretch()
            vbox.addWidget(label2)
            vbox.addStretch()
            vbox.addWidget(label3)
            vbox.addStretch()
            vbox.addWidget(label4)
    
            # 3. 允许label1控件访问超链接
            label1.setOpenExternalLinks(True)
            # 打开允许访问超链接,默认是不允许,需要使用setOpenExternalLinks(True)允许浏览器访问超链接
            label4.setOpenExternalLinks(False)
            # 点击文本框绑定槽事件
            label4.linkActivated.connect(self.link_clicked)
    
            # 滑过文本框绑定槽事件
            label2.linkHovered.connect(self.link_hovered)
            label1.setTextInteractionFlags(Qt.TextSelectableByMouse)
    
            self.setLayout(vbox)
            self.setWindowTitle("QLabel 例子")
    
        def link_clicked(self):
            print("当鼠标点击label-4标签时,触发事件。")
    
        def link_hovered(self):
            print("当鼠标滑过label-2标签时,触发事件。")
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        win = WindowDemo()
        win.show()
        sys.exit(app.exec_())

    案例8 QLabel标签快捷键的使用

    import sys
    from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QGridLayout, QDialog, QLineEdit, QPushButton
    from PyQt5.QtCore import Qt
    from PyQt5.QtGui import QPixmap, QPalette
    
    
    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")
            mainLayoout = QGridLayout(self)
            mainLayoout.addWidget(nameLb1, 0, 0)
            mainLayoout.addWidget(nameEd1, 0, 1, 1, 2)
    
            mainLayoout.addWidget(nameLb2, 1, 0)
            mainLayoout.addWidget(nameEd2, 1, 1, 1, 2)
    
            mainLayoout.addWidget(btnOK, 2, 1)
            mainLayoout.addWidget(btnCancel, 2, 2)
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        labelDemo = QLabelDemo()
        labelDemo.show()
        sys.exit(app.exec_())
  • 相关阅读:
    LeetCode 811. Subdomain Visit Count (子域名访问计数)
    LeetCode 884. Uncommon Words from Two Sentences (两句话中的不常见单词)
    LeetCode 939. Minimum Area Rectangle (最小面积矩形)
    LeetCode 781. Rabbits in Forest (森林中的兔子)
    LeetCode 739. Daily Temperatures (每日温度)
    三种方式实现按钮的点击事件
    239. Sliding Window Maximum
    14.TCP的坚持定时器和保活定时器
    13.TCP的超时与重传
    12.TCP的成块数据流
  • 原文地址:https://www.cnblogs.com/lynsha/p/13398599.html
Copyright © 2011-2022 走看看