10

我有一个QLabel包含富文本的。
我只想从 中提取实际的(可见的)“文本” QLabel,而不是用于格式化的代码。
我本质上需要一个类似于'.toPlainText'other 的方法的功能Qt Widgets

我不能.text()像这个线程中建议的那样简单地调用和字符串操作 html 标签Get plain text from QString with HTML tags,因为返回的QString内容包含所有<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">废话。

如何提取纯文本?

(我对任何方法都持开放态度,即使是间接的。例如;将 html 转换为纯文本的预先存在的函数)

谢谢!

规格:
python 2.7.2
PyQt4
Windows 7

4

2 回答 2

18

使用 aQTextDocument进行转换:

doc = QtGui.QTextDocument()
doc.setHtml(label.text())
text = doc.toPlainText()
于 2012-01-17T18:16:38.610 回答
2

这是一个混乱的工作(对于python-PyQt)

def Extract_PlainText(label):
    Rtf_text = label.text()
    Temp_Obj = QtGui.QTextEdit()
    Temp_Obj.setText(Rtf_text)
    Plain_text = Temp_Obj.toPlainText()
    del Temp_Obj
    return Plain_text

灵感来自http://bytes.com/topic/net/answers/707370-convert-rtf-plain-text

于 2012-01-17T07:59:01.910 回答