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

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

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 ,QPalette

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容