QTextBrowser获得具有重点的锚点网址

时间:2019-05-19 15:56:37

标签: python python-3.x pyqt pyqt5

在QTextBrowser对象上使用anchorClicked.connect()提供了锚点的URL……但这是我想要的...

我想跳到锚点,而不是单击它。

我目前使用eventFilter检测锚点获得焦点,该eventFilter检测“ focusIn”事件。

我现在需要的是在该锚点上“检索URL”的方法。

eventFilter()提供信号源,如下所示:

“位于0x000001D42BA48558的PyQt5.QtWidgets.QTextBrowser对象”

尝试使用以下方法获取此内存地址的内容:

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。

如果我用鼠标单击锚点,则会收到以下控制台消息:

“ in anchorClicked:url = PyQt5.QtCore.QUrl'http://www.____test____.com')”按预期。

如果我选择锚点,则会收到以下控制台消息:

“在focusOnAnchor中”。

我只需要以某种方式将URL添加到此结果中。

谢谢你们

Red Rover

0 个答案:

没有答案