Доступ к методам вложенных виджетов - PullRequest
1 голос
/ 28 июля 2010

Я работаю над оптимизацией моего дизайна с точки зрения mvc , намереваясь упростить API представления, которое является вполне вложенным, даже если Iv создавал составные виджеты (с собственными событиями и сообщениями / pubsub) впопытаться упростить вещи.

Например, у меня есть основной класс графического интерфейса верхнего уровня - wxFrame, в котором есть несколько виджетов, включая блокнот, блокнот содержит несколько вкладок, некоторые из которых являются блокнотами, которые содержат составные виджеты.Таким образом, для вызова методов одного из этих составных виджетов из контроллера у меня будет

 self.gui.nb.sub_nb.composite_widget.method()

. Чтобы создать подходящую абстракцию для представления, я создал ссылки на эти виджеты (чьи методы необходимо вызывать вконтроллер), например,

 self.composite_widget = self.nb.sub_nb.composite_widget()

, так что в контроллере вызов теперь упрощен до

 self.gui.composite_widget.method()

Является ли это приемлемым способом создания уровня абстракции для графического интерфейса?

1 Ответ

1 голос
/ 28 июля 2010

Ну, это определенно один из способов решения проблемы. Однако я склонен использовать pubsub для вызова методов старомодным способом. Некоторым людям нравится pyDispatcher лучше, чем pubsub. Основная проблема с использованием многоточечного вызова метода заключается в том, что его трудно отладить, если вам нужно изменить имя метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...