使用正则表达式,我发现了文本中的所有链接。现在我怎样才能只为自己选择链接并插入一个锚点?
我已经使用过:
cur=self.textedit.textCursor()
cur.select(QTextCursor.Document)
fmt=QTextCharFormat()
fmt.setAnchorHref(link)
cur.mergeCharFormat(fmt)
这具有将整个文本作为链接制作的问题。那是因为我选择了整个文档,我知道。但是,我怎样才能自动选择找到的链接呢?例如,如果文本是
Hello world this is a link to www.google.com and it does not work so I ask at www.stackoverflow.com.
我希望自动选择 www.google.com 和 www.stackoverflow.com。我已经通过正则表达式找到了这两个字符串。
编辑:
我找到了一种选择链接的方法。起初我得到一个链接的索引
link="www.google.com"
text=self.textedit.toPlainText()
selectTextAt = text.index(link)
cur=self.textedit.textCursor()
cur.setPosition(selectTextAt)
cur.movePosition(QTextCursor.Right, QTextCursor.KeepAnchor, len(link))
self.textedit.setTextCursor(cur)
甚至更好:
cur=self.textedit.document().find(link,cur)
self.textedit.setTextCursor(cur)
createHyperlink=cur.selectedText()
fmt=QTextCharFormat()
fmt.setAnchorHref(createHyperlink)
cur.mergeCharFormat(fmt)
然后我还有另外两个问题:
该链接仅在我将文本重新设置为 html 后显示
如果我点击链接,什么都不会发生,但每个文本都会被清除。
在phase5(html-editor)中输入html,似乎链接只有在它们像“a href="http://..:"而不是“a href="www.."时才有效。你有什么建议吗?