如何在QLabel中设置文本并显示“<>”字符?

时间:2017-11-30 23:30:16

标签: python html pyqt5 qlabel pyside2

使用PySide2(基本上是PyQt5),我在QLabel中尝试setText,其字符为'<'和'>'在字符串中。但是,由于这些字符用于修改字体,因此这两个字符中的任何内容都会消失。我尝试用反斜杠来逃避它们,但它似乎仍然没有用......

如何获得'<'和'>'在QLabel中显示的字符?

编辑:这是我的代码正在做的事情(只是抓住了重要的部分):

# color and text get set at various places in my code (len_infs is just the length of the
#    influence item list - hopefully that's obvious...)
#
color = '#FF0000'
text = 'Influence count &lt%d&gt exceeds minimum row count...' %len_infs

# status_label is a QLabel that displays the text in the appropriate color within the label
#
status_label.setText('status: <font color=%s>%s</font>' %(color, text))

正如您所看到的,我根据ekhumoro的建议在字符串中使用&lt&gt,但我没有得到'&lt;'或'&gt;'在生成的QLabel文本中

我希望它能打印status: Influence count <7> exceeds minimum row count...

但实际上会打印status: Influence count &lt7&gt exceeds minimum row count...

两者中,'status:'为白色,其余为红色。

注意:在字符串中使用'<%d>'会产生status: Influence count exceeds minimum row count...

我还需要做些什么来正确格式化字符串?

1 个答案:

答案 0 :(得分:2)

QLabel类自动支持rich-text,因此您需要使用character entity references来转义特殊字符。对于<,使用&lt;>,请使用&gt;

如果你想完全关闭html支持,你可以这样做:

label.setTextFormat(QtCore.Qt.PlainText)