30,630
社区成员
发帖
与我相关
我的任务
分享下面是我的代码:
import wx
class RoundedList(wx.Window):
def __init__(self, master, pos, size):
self.items = {}
self.box = wx.BoxSizer(wx.VERTICAL)
self.size = size
super().__init__(master, id=wx.ID_ANY, pos=pos, size=size)
self.x = size[0]
self.y = size[1]
self.Bind(wx.EVT_PAINT, self.OnPaint)
self.Bind(wx.EVT_SIZE, self.OnSize)
# 下面为什么布不了局呢????????
text1 = wx.StaticText(self, label='1')
text2 = wx.StaticText(self, label='2')
self.box.Add(text1)
self.box.Add(text2)
self.SetSizer(self.box)
def OnPaint(self, event):
self.pdc = wx.PaintDC(self)
self.pdc.SetPen(wx.Pen((0, 176, 80)))
self.pdc.SetBrush(wx.Brush((0, 224, 100)))
self.pdc.DrawRoundedRectangle(0, 0, self.x, self.y, 5)
def OnSize(self, event):
self.Refresh()
app = wx.App()
frame = wx.Frame(None, id=wx.ID_ANY, title='', size=(810, 650),
style=wx.DEFAULT_FRAME_STYLE)
frame.Show()
a = RoundedList(frame, pos=(200, 200), size=(200, 100))
app.MainLoop()
效果:
我的想法是,应该两个文本往下排列,上面是1,下面是2,但是现在2把1给盖上了,布局没起作用。倒是我用绝对布局的时候可以布局。
在我用到这段代码的程序上,效果是这样的:
而且用pos参数在这里也无效了。