【问题标题】:How to colour text in StaticText (wxpython) in different colours?如何以不同颜色为StaticText(wxpython)中的文本着色?
【发布时间】:2011-05-24 03:14:17
【问题描述】:

是否有可能让 wxpython 中的 StaticText 字段的文本以不同的颜色着色?我知道您可以像这样更改 StaticText 字段的整个文本(值)的颜色:

text = wx.StaticText(panel, -1, 'random text')
text.SetForegroundColour('blue')

但是我怎样才能让文本用不同的颜色着色,例如“随机”用红色着色,“文本”用蓝色着色。有办法吗?或者有什么我可以使用的其他小部件?

【问题讨论】:

    标签: python wxpython


    【解决方案1】:

    wx.StaticText 小部件不支持那种东西。您可能想改用其中一个 StyledText 控件。 RichText 控件可能也可以工作。

    【讨论】:

      【解决方案2】:

      这应该会有所帮助。

      text.SetForegroundColour((255,0,0)) # set text color
      text.SetBackgroundColour((0,0,255)) # set text back color
      

      *颜色为 RGB 格式。 你可以找到他们的列表here。用你想要的任何颜色替换我输入的数字。

      【讨论】:

      • 你好。感谢您的快速回复。问题是我想为文本着色不同。 'text.SetBackgroundColour()' 仅更改 StaticText 字段背景的颜色...'text.SetForegroundColour()' 更改文本颜色,但似乎您只能将其更改为一种统一颜色... 你知道我在做什么吗?意思是?不过,我希望文本具有不同的颜色...
      • 我想我明白了。我能想到的唯一简单方法是将文本对象简单地拆分为几个对象,使每个部分成为您选择的颜色,然后将它们一起打印。
      • 是的,我也是这么想的,但这可能会变得相当复杂......嗯,基本上我需要的是在不同标题列表中进行搜索。输入的搜索词应以不同的标题/名称着色。例如,如果我有一个“苹果、梨、香蕉、桃、草莓”的列表,如果我开始输入“Pe”,那么梨和桃的“pe”的颜色应该与其他颜色不同......跨度>
      【解决方案3】:

      聚会可能有点晚了,但也许对某人有帮助。

      根据您所处的平台,您可以使用SetLabelMarkup 方法,该方法允许使用类似 HTML 的标签。它不适用于 Windows,但适用于某些 Linux 版本。

      例如,如果你想要一个双色文本,你可以写

      text.SetLabelMarkup('<span foreground=\'red\'>Hello, </span><span foreground=\'blue\'>World</span>
      

      文档可以在here找到

      Picture: Result on Raspbian

      【讨论】:

        猜你喜欢
        • 2018-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-03
        • 1970-01-01
        • 2020-07-02
        • 1970-01-01
        • 2022-10-25
        相关资源
        最近更新 更多