Запуск метода python или скрипта, щелкающего по текстовой ссылке html (Qtextbrowser)

Есть похожие сообщения на этот вопрос, но ни один не соответствует тому, что мне нужно.

В QtextBrowser у меня есть несколько текстовых ссылок. При нажатии на одну из них мне нужно захватить эту строку и отправить ее в качестве параметра в метод python для отображения другой информации.

Спасибо за помощь.

1 ответ

Вы можете использовать anchorClicked сигнал, который возвращает нажатую ссылку:

from PyQt5 import QtCore, QtWidgets

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self._textbrowser = QtWidgets.QTextBrowser()
        self.setCentralWidget(self._textbrowser)
        self._textbrowser.setHtml('''<a href='http://example1.com'>to example2</a>''')
        self._textbrowser.anchorClicked.connect(self.on_anchorClicked)


    @QtCore.pyqtSlot(QtCore.QUrl)
    def on_anchorClicked(self, url):
        if url == QtCore.QUrl('http://example1.com'):
            self._textbrowser.setHtml('''<a href='http://example2.com'>to example1</a>''')
        elif url == QtCore.QUrl('http://example2.com'):
            self._textbrowser.setHtml('''<a href='http://example1.com'>to example2</a>''')

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())
Другие вопросы по тегам