例如,如果您只是设置
self.textedit.setHtml("<b>Bold text</b>")
htmlCheck=self.textedit.toHtml()
hmtlCheck =
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt;
font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;
-qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Bold text</span>
</p>
</body></html>
为什么我不能只从第一个代码行中获取我的设置文本?这个,我得到的,对于进一步编辑是如此糟糕...想象一下,我在这里写了一个更大的文本。我想选择文本并使其变粗,或制作一个列表,并实时检测超链接...我不知道如何解决它,因为我的代码周围有太多垃圾也可以单独使用。并且只有.toPlainText()和.toHtml()函数才有... 超链接的东西非常简单,我只能.setText(...)和.toPlainText()并且每次都在www。和http上运行一个正则表达式。但我也想要一个动态列表功能或粗体,也许,因此不能使用toPlainText()......
有人为我提供了很好的建议吗?
编辑:这里的这个似乎可以设置选定的文本粗体,即使是通过不同的段落:
def setBold(self):
cur=self.textedit.textCursor()
if cur.hasSelection():
font=self.textedit.currentFont()
font.setWeight(QFont.Bold)
self.textedit.setCurrentFont(font)
答案 0 :(得分:1)
您无法获得您设置的确切文本,因为这不是QTextEditor内部存储的内容。出于这个原因,它的方法被称为toHtml
和toPlainText
而不是getHtml
,应该强调返回的是编辑内容的表示,而不是它的确切的内部状态。
如果您想与编辑器进行交互,您应该像描述here:
那样进行QTextCursor
方法返回的textCursor()
来更改选择或修改/插入光标处的文本