Python 2.7 如何在wxPython中的wx.StaticText()中具有不同颜色的文本

Python 2.7 如何在wxPython中的wx.StaticText()中具有不同颜色的文本,python-2.7,wxpython,Python 2.7,Wxpython,级别:初学者 我正在Windows7操作系统上用wxPython开发GUI。关于wx.StaticText() 我希望wx.StaticText()字段中的文本有两种不同的颜色。 我怎样才能做到这一点 例如:如下图所示,我需要文本的两个不同部分具有两种不同的颜色。 我尝试将文本分成两部分,然后对它们应用不同的颜色,但由于某些原因,第一个文本字段并没有出现,只有第二个文本字段出现在GUI中。我甚至尝试在wx.StaticText()中使用pos=()和其他选项,但没有任何效果。 在我的代码中,我

级别:初学者

我正在Windows7操作系统上用wxPython开发GUI。关于
wx.StaticText()
我希望
wx.StaticText()
字段中的文本有两种不同的颜色。 我怎样才能做到这一点

例如:如下图所示,我需要文本的两个不同部分具有两种不同的颜色。

我尝试将文本分成两部分,然后对它们应用不同的颜色,但由于某些原因,第一个文本字段并没有出现,只有第二个文本字段出现在GUI中。我甚至尝试在
wx.StaticText()
中使用
pos=()
和其他选项,但没有任何效果。 在我的代码中,我在循环中创建面板,然后在循环中创建
wx.StaticText()
字段并将它们添加到面板中。循环完成后,这些面板最终添加到BoxSizer中

下面给出了代码片段(请注意,我已根据实际代码编辑了下面的代码。我的主要想法是了解我的方法是否能解决此问题?我的代码适用于一个wx.StaticText字段,该字段以相同颜色打印面板中的值。):

有没有更好的方法来解决这个问题?有人能举个小例子吗?非常感谢。 附言:有一个类似的老问题。但是还没有回答。

我相信您的“text1”与“text0”重叠,这就是为什么正如您所说的“第一个文本字段没有出现,只有第二个文本字段出现在GUI中”

请试试这个:

    text0 = wx.StaticText(lPanels, -1, label0, pos=(0,0))
    text0.SetForegroundColour('BLACK')
    text1 = wx.StaticText(lPanels, -1, label1, pos=(50,0))
    text1.SetForegroundColour('BLUE')
编辑:

请检查“screenWidth”的值,确保其宽度足以容纳所有字符串


text.setforeground应该是text1.setforground吗?@Jerry\u Y是的,编辑了代码。谢谢,正如我在帖子中提到的,我已经试过pos=()。不幸的是,当我使用pos=()时,没有任何文本出现。同样,当我在循环中添加面板时,这不应该是一个问题,因为它可能在使用pos=()时在同一点上添加面板。是的,您是正确的。我想我发错问题了。我的实际问题是,我没有使用绝对定位(在我的程序中,文本、面板等由程序本身自动添加)。因此,文本重叠。我终于想出了解决办法。我必须使用sizer,然后将这两个不同的文本添加到sizer中,以此类推。。。无论如何,谢谢
    text0 = wx.StaticText(lPanels, -1, label0, pos=(0,0))
    text0.SetForegroundColour('BLACK')
    text1 = wx.StaticText(lPanels, -1, label1, pos=(50,0))
    text1.SetForegroundColour('BLUE')