从包含Rich文本的QLabel获取纯文本

时间:2012-01-17 05:56:34

标签: python qt pyqt pyqt4 qlabel

我有QLabel,其中包含丰富的文字 我想从QLabel中仅提取实际(可见)“文本”,而不是用于格式化的代码。
我基本上需要一个类似于其他'.toPlainText'的{​​{1}}方法的函数。

我不能简单地调用Qt Widgets并按照此帖子Get plain text from QString with HTML tags中的建议操纵字符串操纵html标记,因为返回的.text()包含所有QString无意义。< / p>

如何提取纯文本?

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

谢谢!

规格:
python 2.7.2
PyQt4中
Windows 7

2 个答案:

答案 0 :(得分:13)

使用QTextDocument进行转换:

doc = QtGui.QTextDocument()
doc.setHtml(label.text())
text = doc.toPlainText()

答案 1 :(得分:1)

这是一个混乱的工作(对于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启发