QTextBrowser中的PySide / PyQt文本在单击其中的链接后消失

时间:2013-10-18 17:09:53

标签: python-3.x pyqt href pyside qtextbrowser

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

3 个答案:

答案 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页的时间内完成。