1

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

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

我似乎有几个实施选择:

  1. 将所有控件创建和处理程序代码移动到 SecondaryFrame 类中。
  2. 创建一个空白的 SecondaryFrame 并从 MainFrame 中填充它,将所有处理程序保留在适当的位置,并使 MainFrame 的控件成员而不是 SecondaryFrame
  3. 两者的结合

似乎所有这些选项都需要对我的代码进行重大重构。我是否错过了一种更明显的方法来将已经具有功能的控件移动到新框架?

4

1 回答 1

1

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

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

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

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

您还可以研究模型-视图-控制器的想法。您可以在以下链接中阅读有关它的更多信息:

于 2013-10-15T21:54:03.217 回答