Wxpython 我想知道如何使用wx.gridsizer将文本背景设置为一种颜色
有四种颜色的背景附加。 我使用wx.gridsizer设置背景,以便背景仅适用于文本大小。我想有一个作为附加图像的一行彩色线。我该怎么做 必须按wx.gridsizer排序Wxpython 我想知道如何使用wx.gridsizer将文本背景设置为一种颜色,wxpython,Wxpython,有四种颜色的背景附加。 我使用wx.gridsizer设置背景,以便背景仅适用于文本大小。我想有一个作为附加图像的一行彩色线。我该怎么做 必须按wx.gridsizer排序 import wx class test(wx.Frame): def __init__(self): wx.Frame.__init__(self, None) main = wx.Panel(self, style=wx.DEFAULT) a=wx.StaticText(mai
import wx
class test(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
main = wx.Panel(self, style=wx.DEFAULT)
a=wx.StaticText(main, label='111111111')
a.SetBackgroundColour('red')
b=wx.StaticText(main, label='222222222')
b.SetBackgroundColour('blue')
c=wx.StaticText(main, label='333333333')
c.SetBackgroundColour('yellow')
d=wx.StaticText(main, label='444444444')
d.SetBackgroundColour('cyan')
sizer = wx.GridSizer(0,4,10,10)
sizers = (a,b,c,d)
for i in sizers:
sizer.Add(i, 1, wx.ALL|wx.EXPAND, 1)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(sizer, wx.SUNKEN_BORDER)
main.SetSizer(vbox)
if __name__ == '__main__':
app = wx.App()
frame = test()
frame.Show(True)
app.MainLoop()
尺码器,尺码,他们没有设置背景颜色的方法。
您的问题是您在sizer
sizer=wx.GridSizer(0,4,10,10)
中的项目之间添加了10的水平间隙
将其更改为sizer=wx.GridSizer(0,4,10,0)
一些由WXPython(最显著的GTK)支持的平台不考虑WX.STATICE文本作为单独的小部件;相反,标签只是直接绘制在其父窗口上。这些平台不允许开发人员更改小部件的背景颜色。
使用GenStaticText将克服上述所有问题,因为它本身就是一个通用小部件和一个真正的窗口
import wx
import wx.lib.stattext as ST
class test(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
main = wx.Panel(self,-1)
a=ST.GenStaticText(main, label='111111111', size=(100,-1))
b=ST.GenStaticText(main, label='222222222', size=(100,-1))
c=ST.GenStaticText(main, label='3333', size=(100,-1))
d=ST.GenStaticText(main, label='444444444', size=(100,-1))
sizer = wx.GridSizer(0,4,10,0)
sizers = (a,b,c,d)
for i in sizers:
i.SetBackgroundColour(wx.RED)
sizer.Add(i, 1, wx.ALL|wx.EXPAND)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(sizer, wx.SUNKEN_BORDER)
main.SetSizer(vbox)
if __name__ == '__main__':
app = wx.App()
frame = test()
frame.Show(True)
app.MainLoop()
请注意,我为每个静态文本指定了一个大小
,这确保了文本的长度不会覆盖sizer所做的决定,并保持一致
尺码器,尺码,他们没有设置背景颜色的方法。
您的问题是您在sizersizer=wx.GridSizer(0,4,10,10)
中的项目之间添加了10的水平间隙
将其更改为sizer=wx.GridSizer(0,4,10,0)
一些由WXPython(最显著的GTK)支持的平台不考虑WX.STATICE文本作为单独的小部件;相反,标签只是直接绘制在其父窗口上。这些平台不允许开发人员更改小部件的背景颜色。
使用GenStaticText将克服上述所有问题,因为它本身就是一个通用小部件和一个真正的窗口
import wx
import wx.lib.stattext as ST
class test(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
main = wx.Panel(self,-1)
a=ST.GenStaticText(main, label='111111111', size=(100,-1))
b=ST.GenStaticText(main, label='222222222', size=(100,-1))
c=ST.GenStaticText(main, label='3333', size=(100,-1))
d=ST.GenStaticText(main, label='444444444', size=(100,-1))
sizer = wx.GridSizer(0,4,10,0)
sizers = (a,b,c,d)
for i in sizers:
i.SetBackgroundColour(wx.RED)
sizer.Add(i, 1, wx.ALL|wx.EXPAND)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(sizer, wx.SUNKEN_BORDER)
main.SetSizer(vbox)
if __name__ == '__main__':
app = wx.App()
frame = test()
frame.Show(True)
app.MainLoop()
请注意,我为每个静态文本指定了一个大小
,这确保了文本的长度不会覆盖sizer所做的决定,并保持一致
我使用的是GenStaticText
,所以在Windows中背景也是透明的!?感谢您成为我最想要的功能之一。我使用了GenStaticText
,因此Windows中的背景也是透明的!?谢谢你成为我最想要的功能之一。