在WXPYTHON显示和隐藏框架中



我尝试使用MVC模型。我使用PubSub在不同文件之间进行通信。我使用wxpython来构建程序的GUI。

我在主文件2帧中打开

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

我隐藏了ma_view,因为我只需要打开它,以便我可以使用PubSub进行交流。现在,当用户想在filter_view中的menubar中打开ma_view时,我不想打开一个新的ma_view,我只想显示hived框架。

问题是filter_view的menubar也位于单独的文件中,所以当我键入

maview.Show()

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

maview = MA_view.Main(None) 

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

我真的不喜欢与MVC合作(可能是因为我的编程技能还不够好),但是我正在与其他大学合作,所以我必须这样做。

TX提前

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文件中,从Menubar处理程序中发送一条消息,如pub.sendMessage('unhide_ma')
  4. Main.__unhide中,您将窗口放开。