我将以下变量附加到'QTextBrowser'。它确实显示为链接,但当我点击它时,'QTextBrowser'中的所有文本都会消失。 'anchorClicked'信号所连接的所有函数都是在shell中打印的东西,以便我知道接收到了信号。
word = '<a href>' + '<span style="background-color:#C0C0C0">' + word + '</span>' +'</a>'
self.textBrowser.anchorClicked.connect(self.test)
def test(self,argv_1):
print('!!!')
答案 0 :(得分:5)
可能发生的事情是文本浏览器正在尝试导航到锚中指定的href。但由于href为空,它只显示一个空白页。
如果您想停止自动链接导航,请尝试以下操作:
self.textBrowser.setOpenLinks(False)
(注意:单击链接时仍会发送anchorClicked信号。)
答案 1 :(得分:2)
您还可以通过在与self.textBrowser.setSource(QtCore.QUrl())
信号相关联的功能中调用anchorClicked
来阻止此行为(在您的情况下为test()
)。
举个例子,看看我在回答你的其他问题时做了些什么:https://stackoverflow.com/a/19475367/1994235
这允许您仍然有一些链接可以将您带到其他页面,而有些则不会(您调用上面的代码行以防止页面更改,只有当某些URL传递给您的函数时)
答案 2 :(得分:0)
使用html2text将URL下载到页面上每个链接的匹配目录。重新格式化为HTML,添加标题并重新链接链接。然后每次单击链接时都会递归执行此操作,并且您可以有效地使用有效的Web浏览器。链接实际上会起作用。如果可以的话,我希望看到有人在不到3页的时间内完成。