wxPython在运行时创建控件

时间:2013-10-24 09:23:30

标签: python wxpython wxwidgets

我想创建一个在运行时创建控件的类;例如:

self.Text1 = wx.TextCtrl( self.m_panel1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 50,-1 ), wx.TE_PROCESS_ENTER|wx.TE_PROCESS_TAB )
self.Text1.SetFont( wx.Font( 12, 74, 90, 90, False, wx.EmptyString ) )

上转换此(例如定义我的ipotetic库)
AddText(Text1, self.m_panel1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 50,-1 ), wx.TE_PROCESS_ENTER|wx.TE_PROCESS_TAB )
self.Text1.SetFont( wx.Font( 12, 74, 90, 90, False, wx.EmptyString ) )

在运行时创建和访问控件是否可行?

感谢Aesis。

1 个答案:

答案 0 :(得分:2)

我实际上写了一篇关于这个主题的文章,你可以在这里阅读:

我们的想法是创建窗口小部件,然后调用父窗体的Layout()方法使其正确显示。如果你要添加很多小部件,那么你可能想要使用ScrolledPanel或类似的小部件,否则小部件可能会在屏幕外添加。

绑定动态窗口小部件非常棘手,因为您希望在创建窗口小部件之前定义事件处理程序。我没有任何方便的例子。但是,您可以从本文中获得一些方法的一些想法: