Запуск метода 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_())