如何将wxPython控件移动到另一个框架

时间:2013-10-15 20:46:12

标签: wxpython

我的主要wxPython应用程序wx.Frame目前充满了按钮和文本字段以及主应用程序显示区域。所有事件处理程序和UI代码都包含在MainFrame类中,该类将命令传递给Control类。

我想将其中一些控件从MainFrame移动到可以隐藏的新辅助框架。我创建了一个SecondaryFrame实例,然后使用菜单项来显示和隐藏它。

我似乎有几个实施选择:

  1. 将所有控件创建和处理程序代码移动到SecondaryFrame类中。
  2. 创建一个空白的SecondaryFrame并从MainFrame中填充它,使所有处理程序就位,并使MainFrame的控件成员而不是SecondaryFrame
  3. 两者的组合
  4. 似乎所有这些选项都需要对我的代码进行重大的重构。我是否错过了将已经功能的控件移动到新框架的更明显的方法?

1 个答案:

答案 0 :(得分:1)

每个框架都需要有自己的小部件。如果你想让两个帧由于某种原因具有相同的控件,那么我将创建一个基类框架并让其他两个框架继承它。

处理程序代码本身可以保存在控制器模块中。然后你将导入控制器并执行以下操作:

mySecondaryFramesBtn.Bind(wx.EVT_BUTTON, controller.btnHandler)

这样你可以将第一帧和第二帧中的按钮绑定到同一个处理程序,可以这么说。

您可能还会研究模型 - 视图 - 控制器的概念。您可以通过以下链接了解更多信息: