如何在StaticText中用不同颜色着色文本?
在wxpython中,能不能让一个静态文本框里的文字用不同的颜色显示呢?我知道可以像这样改变整个静态文本框的文字颜色:
text = wx.StaticText(panel, -1, 'random text')
text.SetForegroundColour('blue')
但是我想要让里面的某些文字用不同的颜色,比如“random”用红色,“text”用蓝色。有没有什么办法可以做到?或者有没有其他的控件可以使用呢?
3 个回答
0
可能来得有点晚,但希望能帮到某些人。
根据你使用的平台,你可以用一个叫 SetLabelMarkup
的方法,这个方法可以让你使用类似HTML的标签。它在Windows上不支持,但在某些Linux版本上可以用。
举个例子,如果你想要一段双色的文字,你可以这样写:
text.SetLabelMarkup('<span foreground=\'red\'>Hello, </span><span foreground=\'blue\'>World</span>
你可以在这里找到相关文档。
0
这应该能帮到你。
text.SetForegroundColour((255,0,0)) # set text color
text.SetBackgroundColour((0,0,255)) # set text back color
*颜色是用RGB格式表示的。你可以在这里找到它们的列表。把我写的数字换成你想要的颜色就可以了。
1
wx.StaticText这个控件不支持你想要的那种功能。你可以考虑使用StyledText控件中的一个,RichText控件也可能适合你的需求。