1

我将以下变量附加到“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('!!!')
4

3 回答 3

5

可能发生的事情是文本浏览器正在尝试导航到锚点中指定的 href。但由于 href 是空的,它只显示一个空白页面。

如果你想停止自动链接导航,试试这个:

self.textBrowser.setOpenLinks(False)

(注意:单击链接时仍会发送 anchorClicked 信号)。

于 2013-10-18T20:46:33.100 回答
2

您还可以通过调用self.textBrowser.setSource(QtCore.QUrl())连接到anchorClicked信号的函数(在您的情况下test())来防止这种行为。

例如,请参阅我在此处回答您的其他问题时所做的:https ://stackoverflow.com/a/19475367/1994235

这允许您仍然有一些链接可以将您带到其他页面,而有些则没有(您调用上面的代码行以防止页面更改,仅当某些 url 传递给您的函数时)

于 2013-10-20T11:04:19.383 回答
0

使用html2text将 URL 下载到页面上每个链接的匹配目录。重新格式化为 HTML,添加标题并重新连接链接。然后在每次单击链接时递归地执行此操作,这样您就可以有效地拥有一个正常工作的网络浏览器。这些链接实际上会起作用。如果可以的话,我希望看到有人在不到 3 页的时间内完成。

于 2014-12-02T19:12:15.993 回答