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



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

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

我似乎有几个实现选择:

  1. 将所有控件创建和处理程序代码移动到 SecondaryFrame 类中。
  2. 创建一个空白的辅助帧并从大型机中填充它,保留所有处理程序,并使控件成为大型机而不是辅助帧的成员
  3. 两者的结合

似乎所有这些选项都需要对我的代码进行重大重构。 我是否缺少将已经起作用的控件移动到新框架的更明显的方法?

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

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

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

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

您还可以研究模型-视图-控制器的概念。您可以通过以下链接阅读更多相关信息:

  • http://wiki.wxpython.org/ModelViewController
  • http://www.blog.pythonlibrary.org/2011/11/10/wxpython-and-sqlalchemy-an-intro-to-mvc-and-crud/

最新更新