添加带有按钮的小部件- wxPython



我正在尝试创建类似Wordpress中的类别面板,使用wxPython。

我想弄清楚的是,当用户点击按钮(如"添加新类别")时,如何添加一个小部件

下面是我的代码:
import wx
class MainWindow(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, size=(300,200))
        self.panel = wx.Panel(self, -1)
        button = wx.Button(self.panel,-1,"Button")
        self.vbox = wx.BoxSizer(wx.VERTICAL)
        self.vbox.Add(button)
        add_btn = wx.Button(self.panel,-1,"Add")
        add_btn.Bind(wx.EVT_BUTTON, self.add)
        hbox = wx.BoxSizer(wx.HORIZONTAL)
        hbox.Add(add_btn)
        main_vbox = wx.BoxSizer(wx.VERTICAL)
        main_vbox.Add(self.vbox)
        main_vbox.Add(hbox)
        self.panel.SetSizer(main_vbox)
        self.Centre()
        self.Show(True)
    def add(self,event):
        self.vbox.Add((wx.Button(self.panel,-1,"Button")))
if __name__ == "__main__":
    app = wx.App()
    MainWindow(None, -1, 'Add a Button')
    app.MainLoop()

我的问题是,按钮被添加到前一个按钮的顶部。我对此相当困惑,因为如果我删除add()函数的event参数,然后在__init__方法中调用它,self.add(),它工作得很好。但这对我没有任何帮助,因为我需要在用户单击按钮时添加小部件。

任何帮助都是非常感激的。

添加按钮后调用self.panel.Layout()。当您调整带有子窗口的窗口大小时(用您当前的代码试试),这个函数会自动调用,但是当您向窗口添加小部件时不会调用。

相关内容

  • 没有找到相关文章

最新更新