Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » [wxPy] Разделение интерфейса и функциональности [RSS Feed]

#1 Ноя. 8, 2010 13:19:23

4umak
От:
Зарегистрирован: 2010-10-06
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

[wxPy] Разделение интерфейса и функциональности

Добрый вечер!

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

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())
А как сослаться на функцию из файла “верхнего” каталога?



Отредактировано (Ноя. 10, 2010 10:56:25)

Офлайн

#2 Ноя. 11, 2010 18:48:56

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

[wxPy] Разделение интерфейса и функциональности

Вы можете добавить перед импортом следующие строки

import sys
sys.path.append('..')
Это изменит пути поиска модулей так чтобы app.py был доступен.
но насколько я понимаю для питона более естественным является путь, когда из app делается библиотека



Отредактировано (Ноя. 11, 2010 18:49:28)

Офлайн

#3 Ноя. 11, 2010 18:54:07

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

[wxPy] Разделение интерфейса и функциональности

Еще одно отдельное замечание - если вы в app вызываете окна и формы - то значит бизнес логика уже не отдельно.

наверное надо как-то так
root
guimain.py
lib_logic
__init__.py
app.py
……..
lib_form_storage
__init__py
form1.py
……
Но конечно решать вам.



Офлайн

#4 Ноя. 16, 2010 19:04:46

4umak
От:
Зарегистрирован: 2010-10-06
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

[wxPy] Разделение интерфейса и функциональности

Еще одно отдельное замечание - если вы в app вызываете окна и формы - то значит бизнес логика уже не отдельно.

наверное надо как-то так
Хм. Интересное предложение. Спасибо, попробую организовать так:)



Офлайн

  • Начало
  • » GUI
  • » [wxPy] Разделение интерфейса и функциональности[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version