Использование anchorClicked.connect () в объекте QTextBrowser обеспечивает URL-адрес якоря ... что я и хочу, однако ...
Я хотел бы перейти на якорь, а не щелкать по нему.
В настоящее время я обнаруживаю, что якорь получает фокус с помощью EventFilter, который обнаруживает событие «focusIn».
Все, что мне сейчас нужно, это способ «получения URL» на этом якоре.
EventFilter () предоставляет источник сигнала следующим образом:
"PyQt5.QtWidgets.QTextBrowser объект по адресу 0x000001D42BA48558 "
Пытался получить содержимое этого адреса памяти, используя:
content = ctypes.cast(int(hex(source.group(2))), ctypes.py_object).value
, но возникла проблема с использованием предоставленного шестнадцатеричного адреса ID.
Кроме того, этот адрес памяти может даже не иметь URL-адреса… в документации не говорится.
#create a qtextbrowser widget
self.doco = QTextBrowser(self.mainpane)
#listen for mouse-click on anchor signal OR
self.doco.anchorClicked.connect(self.contractAnchorClicked) #this works
#listen for tab to anchor signal
self.focusInFilter = FocusInFilter(self.doco) #works but no URL
self.doco.installEventFilter(self.focusInFilter)
self.focusInFilter.focusIn.connect(self.detectFocusOnAnchor)
#run this method if mouse-click detected
def anchorClicked(self,url):
print("in anchorClicked: url=",url)
#run this method if tab to anchor detected
def focusOnAnchor(self):
print("in focusOnAnchor")
#the event filter
class FocusInFilter(QObject):
focusIn = pyqtSignal()
def eventFilter(self, source, event):
if event.type() == QEvent.FocusIn:
print("--eventFilter() focus detected " + str(source))
self.focusIn.emit()
return True
return False
Надеюсь, кто-нибудь знает, как получить URL-адрес привязки.
Если ящелкнув мышью на якоре, я получаю следующее консольное сообщение:
"в anchorClicked: url = PyQt5.QtCore.QUrl 'http://www.____test____.com')", как и ожидалось.
Если перейти на вкладкуякорь Я получаю следующее консольное сообщение:
"in focusOnAnchor", как и ожидалось.
Мне просто нужно как-то добавить URL к этому результату.
Спасибо, ребята
Красный Ровер