【问题标题】:Adding a widget with a button - wxPython添加带有按钮的小部件 - wxPython
【发布时间】:2011-10-18 15:48:50
【问题描述】:

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

我想弄清楚的是如何在用户单击按钮时添加小部件(例如“添加新类别”)

这是我的代码:

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() 中调用它,它工作正常。但这对我没有任何帮助,因为我需要在用户单击按钮时添加小部件。

非常感谢任何帮助。

【问题讨论】:

    标签: python user-interface wxpython


    【解决方案1】:

    添加按钮后致电self.panel.Layout()。当您调整带有子窗口的窗口大小时(使用您当前的代码尝试),此函数会自动调用,但不会在您向其中添加小部件时自动调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多