Pyqt5中点击Qlabel触发的事件

该博客介绍了如何在PyQt5的QLabel控件中设置和处理超链接,包括设置文本标签、自定义背景颜色、响应光标滑过和点击事件。同时展示了通过QPixmap设置标签图像,并监听鼠标点击事件打开网页。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#QLabel控件使用
from PyQt5.QtWidgets import QApplication,QLabel,QWidget,QVBoxLayout
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap,QPalette
import sys
import webbrowser

class WindowDemo(QWidget):
    def __init__(self):
        super(WindowDemo, self).__init__()
        self.label_1=QLabel(self)
        self.label_1.setText("这是一个文本标签!<a href='www.baidu.com' style='color:red'>百度</a>")
        self.label_1.setAutoFillBackground(True)
        self.palette=QPalette()
        self.palette.setColor(QPalette.Window,Qt.blue)
        self.label_1.setPalette(self.palette)
        self.label_1.setAlignment(Qt.AlignCenter)

        self.label_1.setOpenExternalLinks(True)  # 允许访问超链接
        self.label_1.linkHovered.connect(self.link_hovered)  # 针对链接光标略过
        self.label_1.linkActivated.connect(self.link_clicked)  # 针对链接点击事件

        self.label_2=QLabel(self)
        self.label_2.setPixmap(QPixmap('./validate.png'))  # 设置图标,与文字冲突,则setText的文字不显示
        self.label_2.mousePressEvent = self.photo_link  # 设置图片点击事件
        # verification_code() takes exactly 2 arguments (1 given)
        self.vbox=QVBoxLayout()
        self.setLayout(self.vbox)
        self.vbox.addWidget(self.label_1)
        self.vbox.addWidget(self.label_2)
        self.vbox.addStretch()

    def photo_link(self, test):
        webbrowser.open('https://www.baidu.com/')
        print '====='

    def link_hovered(self):
        print("光标滑过Label_1触发事件")

    def link_clicked(self):
        print("点击时触发事件")


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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值