使用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 <%d> 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;'在生成的QLabel文本中
我希望它能打印status: Influence count <7> exceeds minimum row count...
但实际上会打印status: Influence count <7> exceeds minimum row count...
两者中,'status:'为白色,其余为红色。
注意:在字符串中使用'<%d>'
会产生status: Influence count exceeds minimum row count...
我还需要做些什么来正确格式化字符串?
答案 0 :(得分:2)
QLabel
类自动支持rich-text,因此您需要使用character entity references来转义特殊字符。对于<
,使用<
和>
,请使用>
。
如果你想完全关闭html支持,你可以这样做:
label.setTextFormat(QtCore.Qt.PlainText)