Найти - Пользователи
Полная версия: [wxPy] Разделение интерфейса и функциональности
Начало » GUI » [wxPy] Разделение интерфейса и функциональности
1
4umak
Добрый вечер!

Структура проекта такова:

project
…forms
……__init__.py
……MainWindow.py
……SettingsWindow.py
…app.py

Хочется, чтобы интерфейс описывался максимально отдельно (forms), а логика была отдельно в файле app.py. Вызывать из этого файла окна - не проблема, есть проблема обратного т.с. импорта:)

Т.е., допустим, мне нужно выполнить какую-нибудь функцию. Я её описываю в файле app.py. Но ведь эту функцию ещё нужно привязать к кнопке на форме! А для этого нужно в файле самой формы это прописывать, при её инициализации. Например, что-то вроде
app.Bind(wx.EVT_BUTTON, self.OnSettingsOpen, id = self.button_settings.GetId())
А как сослаться на функцию из файла “верхнего” каталога?
doza_and
Вы можете добавить перед импортом следующие строки
import sys
sys.path.append('..')
Это изменит пути поиска модулей так чтобы app.py был доступен.
но насколько я понимаю для питона более естественным является путь, когда из app делается библиотека
doza_and
Еще одно отдельное замечание - если вы в app вызываете окна и формы - то значит бизнес логика уже не отдельно.

наверное надо как-то так
root
guimain.py
lib_logic
__init__.py
app.py
……..
lib_form_storage
__init__py
form1.py
……
Но конечно решать вам.
4umak
Еще одно отдельное замечание - если вы в app вызываете окна и формы - то значит бизнес логика уже не отдельно.

наверное надо как-то так
Хм. Интересное предложение. Спасибо, попробую организовать так:)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB