wxPython布局,为什么我的这个程序无法布局?

lds_edward 2023-11-28 18:06:26

下面是我的代码:

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参数在这里也无效了。

...全文
105 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-11-28
精选
  • 打赏
  • 举报
回复
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/8036687, 请您保持关注, 如果回答有帮助解决此问题, 麻烦您动动小手给相关的回答点赞, Ada会在评论区为您更新结题状态

30,630

社区成员

发帖
与我相关
我的任务
社区描述
就等你来冒个泡~
社区管理员
  • 灌水乐园
  • 社区助手
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

版主:

社区助手

 

试试用AI创作助手写篇文章吧