0

我尝试使用mvc-模型。我使用pubsub在不同的文件之间进行通信。我使用wxpython来构建我的程序的GUI。在wxpython中显示和隐藏帧

我打开我的主文件2帧:filter_view(主类文件)和MA_view(我导入此作为一个模块):

maview = MA_view.Main(None) 
    maview.Hide() 

我躲MA_view,因为我只需要它打开以便我可以使用pubsub进行通信。现在,当用户想要在filter_view的菜单栏中打开MA_view时,我不想打开新的MA_view,我只想显示隐藏的帧。

的问题是,filter_view的菜单栏也是一个单独的文件,所以当我键入

maview.Show() 

当然不,因为现在在这个文件中没有定义maview。但是当我这样定义它时:

maview = MA_view.Main(None) 

它只是打开一个新的框架。

我真的不喜欢使用mvc(可能是因为我的编程技巧不够好),但我正在与其他同事合作,所以我必须这样工作。

TX提前

回答

1

MVC是超级重要的,有这么挂,你会不会后悔额外的学习曲线。下面是使用wx.lib.pubsub支持MVC在你的应用程序的步骤:

  1. 在这两个文件,添加from wx.lib.pubsub import pub
  2. MA_view模块中,使Main.__init__订阅将告知Main实例取消隐藏自己的主题,如pub.subscribe('unhide_ma', self.__unhide)
  3. filter_view文件中,发送消息来自菜单栏处理程序,如pub.sendMessage('unhide_ma')
  4. Main.__unhide中,您取消隐藏窗口。
+0

tx为peptalk:o)我实际上喜欢学习曲线,但有时它是如此令人沮丧; o)但感谢您的帮助,它的工作原理!我很开心! – VeVi

+0

太棒了,祝你好运! – Schollii