1

使用正则表达式,我发现了文本中的所有链接。现在我怎样才能只为自己选择链接并插入一个锚点?

我已经使用过:

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.."时才有效。你有什么建议吗?

4

0 回答 0