我的主要wxPython应用程序wx.Frame目前充满了按钮和文本字段以及主应用程序显示区域。所有事件处理程序和UI代码都包含在MainFrame类中,该类将命令传递给Control类。
我想将其中一些控件从MainFrame移动到可以隐藏的新辅助框架。我创建了一个SecondaryFrame实例,然后使用菜单项来显示和隐藏它。
我似乎有几个实施选择:
似乎所有这些选项都需要对我的代码进行重大的重构。我是否错过了将已经功能的控件移动到新框架的更明显的方法?
答案 0 :(得分:1)
每个框架都需要有自己的小部件。如果你想让两个帧由于某种原因具有相同的控件,那么我将创建一个基类框架并让其他两个框架继承它。
处理程序代码本身可以保存在控制器模块中。然后你将导入控制器并执行以下操作:
mySecondaryFramesBtn.Bind(wx.EVT_BUTTON, controller.btnHandler)
这样你可以将第一帧和第二帧中的按钮绑定到同一个处理程序,可以这么说。
您可能还会研究模型 - 视图 - 控制器的概念。您可以通过以下链接了解更多信息: