pyqt:为Qlabel添加点击事件

时间:2016-06-16 12:42:39

标签: python pyqt

我创建了标签:self.labelOnlineHelp = QLabel('<a href="http://example.com">Online Help</a>'),并希望将其设为可点击。理想情况下,它应该打开firefox(但不是默认浏览器),并将鼠标更改为指针(简而言之:只是为了创建一个通常的超链接)。我看到qlabel中没有点击事件。有没有办法以简单的方式执行此操作?

2 个答案:

答案 0 :(得分:1)

您可以使用setOpenExternalLinks

执行此操作
self.labelOnlineHellp.setOpenExternalLinks(True)

如果您想要执行与默认行为不同的操作(例如,在默认浏览器中打开链接),您可以改为连接到linkActivated信号(不要使用setOpenExternalLinks到{{ 1}}如果你自己处理链接的开放。)

True

答案 1 :(得分:1)

您需要重新实现QLabel类并覆盖mousePressEvent或mouseReleaseEvent。这是一个简单的例子:

class MyLabel(QLabel):
    def __init__(self, parent):
        QLabel.__init__(self, parent)
        self.link = "http://www.example.com"

    def mousePressEvent(self, event):
        # open the link on your browser
        webbrowser.get('firefox').open_new_tab(self.link)