写点什么

Python Qt GUI 设计:QLabel 标签类(基础篇—11)

  • 2021 年 11 月 19 日
  • 本文字数:1429 字

    阅读完需:约 5 分钟

Python Qt GUI设计:QLabel标签类(基础篇—11)

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

QLabel 类中的常用方法如下表所示:

QLabel 类中的常用信号如下表所示:

通过以下案例加强对 QLabel 类使用方法的理解吧,效果如下所示:

在这个例子中,QLabel 对象 label1 和 label3 可以显示文字和图片,QLabel 对象 label2 和 label4 包含超链接的标题,它们的 letOpenExternalLinks 被设置为 True,因此,如果点击这个标签,则相关的 URL 将在浏览器中打开。将 label2 的 linkHovered 信号连接到 link_hovered()函数,所以,当用鼠标划过它时,这个函数将被执行。将 label4 的 linkActivated 信号连接到 link_clicked()函数,所以,当用鼠标点击它时,这个函数将被执行。实现代码如下所示:

from PyQt5.QtWidgets import QApplication,  QLabel  ,QWidget, QVBoxLayout from PyQt5.QtCore import Qt from PyQt5.QtGui import QPixmap ,QPaletteimport sys      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='https://blog.csdn.net/m0_38106923'>请关注公众号:美男子玩编程</a>")                label3.setAlignment( Qt.AlignCenter)            label3.setToolTip('这是一个图片标签')        label3.setPixmap( QPixmap("./4.jpg"))         label4.setText("<A href='https://blog.csdn.net/m0_38106923'>欢迎关注不脱发的程序猿博客!</a>")        label4.setAlignment( Qt.AlignRight)        label4.setToolTip('这是一个超链接标签')                #2        vbox = QVBoxLayout()        vbox.addWidget(label1)        vbox.addStretch()        vbox.addWidget(label2)        vbox.addStretch()        vbox.addWidget( label3 )        vbox.addStretch()        vbox.addWidget( label4)                #3        label2.setOpenExternalLinks(True)        # 打开允许访问超链接,默认是不允许,需要使用 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_())
复制代码


发布于: 4 小时前阅读数: 8
用户头像

【研究方向】物联网、嵌入式、AI、Python 2018.02.09 加入

【公众号】美男子玩编程,关注获取海量资源~

评论

发布
暂无评论
Python Qt GUI设计:QLabel标签类(基础篇—11)