为textCursor设置锚点以匹配正则表达式

时间:2013-08-24 17:43:06

标签: python html pyqt4 href qtextcursor

使用正则表达式,我找到了文本中的所有链接。现在我如何只为自己选择链接并插入锚点?

我已经使用过:

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

  • 后才会显示该链接
  • 如果单击该链接,则不会发生任何事情,但每个文本都会被清除。

将html键入stage5(html-editor)似乎只有链接才有效,如果它们像“a href =”http:// ..:“而不是”a href =“www ....” 。你有什么建议吗?

0 个答案:

没有答案