我尝试使用mvc-model。我使用pubsub在不同的文件之间进行通信。我使用wxpython来构建我的程序的gui。
我在主文件中打开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一起工作(可能是因为我的编程技巧不够好)但是我和其他同事一起工作,所以我必须这样做。
提前
答案 0 :(得分:1)
MVC非常重要,所以在那里,你不会后悔额外的学习曲线。以下是使用wx.lib.pubsub在您的应用上支持MVC的步骤:
from wx.lib.pubsub import pub
。 MA_view
模块中,让Main.__init__
订阅一个主题,告诉Main
实例取消隐藏,例如pub.subscribe('unhide_ma', self.__unhide)
。filter_view
文件中,从pub.sendMessage('unhide_ma')
等菜单栏处理程序发送消息。 Main.__unhide
中,您取消隐藏窗口。