【发布时间】:2014-02-03 09:20:28
【问题描述】:
级别:初学者
我正在 Windows 7 操作系统上使用 wxPython 开发 GUI。我对wx.StaticText() 有疑问
我希望wx.StaticText() 字段中的文本有两种不同的颜色。
我怎样才能做到这一点?
例如:如下图所示,我需要文本的两个不同部分来具有两种不同的颜色。
我尝试将文本分成两部分,然后对它们应用不同的颜色,但由于某种原因,第一个文本字段没有出现,只有第二个出现在 GUI 中。我什至尝试在wx.StaticText() 和其他选项中使用pos=(),但没有任何效果。
在我的代码中,我在循环中创建面板,然后在循环中创建wx.StaticText() 字段并将它们添加到面板中。当循环完成时,这些面板最终被添加到 BoxSizer。
下面给出了代码 sn-p (请注意,我已经根据我的实际代码编辑了下面的代码。我的主要想法是知道我的方法是否可以解决这个问题?我的代码可以正常工作wx.StaticText 字段,以相同颜色打印面板中的值。):
k = 0
sizer = wx.BoxSizer(wx.VERTICAL)
for i in locations: #locations is defined in other part of the code
lPanels = 'lPanel'+str(k)
lPanels = wx.Panel(panel2, size=(screenWidth,50))
#panel2 and screenWidth are defined in other part of code.
label0 = str(k+1)+ '. '
label1 = locations[k]
text0 = wx.StaticText(lPanels, -1, label0)
text0.SetForegroundColour('#ffffff')
text1 = wx.StaticText(lPanels, -1, label1)
text1.SetForegroundColour('#000001')
sizer.Add(lPanels, 0, wx.ALL, 5)
k += 1
panel2.SetSizer(sizer)
有没有更好的方法来解决这个问题?有人可以提供一个小例子吗?谢谢你。 PS:有一个类似的老问题here。但是还没有回答。
【问题讨论】:
-
“text.setforeground”应该是 text1.setforground 吗?
-
@Jerry_Y 是的,编辑了代码。谢谢
标签: python-2.7 wxpython