0

Я пытаюсь работать с mvc-моделью. Я использую pubsub для связи между различными файлами. Я использую wxpython для создания gui моей программы.в wxpython show and hide frames

Я открываю в мой основной файл 2 кадров: filter_view (главный класс этого файла) и MA_view (я импортировать это как модуль):

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

Я прячу MA_view, потому что мне просто нужно, чтобы это было открыть, чтобы я мог использовать pubsub для общения. Теперь, когда пользователь хочет открыть MA_view в строке меню в filter_view, я не хочу открывать новый MA_view, я просто хочу показать скрытый кадр.

Проблема заключается в том, что строка меню из filter_view также в отдельном файле, так что, когда я печатаю

maview.Show() 

, конечно, теперь не maview, потому что в этом файле оно не определено. Но когда я определяю это так:

maview = MA_view.Main(None) 

Он просто открывает новую рамку.

Мне действительно не нравится работать с mvc (возможно, потому, что мои навыки программирования недостаточно хороши), но я работаю с другими коллегами, поэтому мне приходится работать именно так.

ТХ заранее

ответ

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, отправьте сообщение от manubar handler как pub.sendMessage('unhide_ma').
  4. В окне Main.__unhide вы открываете окно.
+0

tx для peptalk: o) Я действительно наслаждаюсь кривой обучения, но иногда это soooo расстраивает; o) Но спасибо за помощь, она работает! Я так счастлив! – VeVi

+0

Отлично, удачи! – Schollii

 Смежные вопросы

  • Нет связанных вопросов^_^