Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » [wxPython] Получить идентификатор текущего фрейма. [RSS Feed]

#1 Янв. 3, 2011 07:05:00

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

[wxPython] Получить идентификатор текущего фрейма.

Решил в программе полностью разделить дизайн форм и функционала, отчего получилась вот такая вот структура:

app.py
…./logic
……..__init__.py
……..applogic.py
…./forms
……..__init__.py
……..MainFrame.py
……..SecondFrame.py

Весь основной функционал вынесен в applogic.py. В связи с чем возникает вопрос - как ловить идентификатор(?) текущего фрейма? Т.е. допустим, есть в библиотеке функция закрытия окна:

    def CloseWindow(self, event):
self.Destroy()
Но при вызове её из фрейма по self, естественно, вызывается класс самого applogic. Так вот, как словить текущее окно и что указать вместо self?:)



Офлайн

#2 Янв. 3, 2011 10:13:16

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

[wxPython] Получить идентификатор текущего фрейма.

Ну вообще у event есть свойства

EventObject
object (usually a window) associated with the event, if any.
и
Id
identifier associated with this event, such as a button command id.
но вообще мне кажется вы лишнего вынесли в applogic



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Янв. 3, 2011 10:19:10

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

[wxPython] Получить идентификатор текущего фрейма.

PooH
но вообще мне кажется вы лишнего вынесли в applogic
Хотелось просто ПОЛНОСТЬЮ вынести логику из файлов форм. Единственная загвоздка сейчас именно в этом вот:)



Офлайн

#4 Янв. 3, 2011 10:28:00

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

[wxPython] Получить идентификатор текущего фрейма.

4umak
Хотелось просто ПОЛНОСТЬЮ вынести логику из файлов форм.
Можно наследовать класс с логикой от класса формы или создавать экземпляр класса формы как атрибут. Вот тут есть пример для qt http://pyobject.ru/blog/2008/05/07/pyqt-unpythonic-gui/



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#5 Янв. 3, 2011 10:35:11

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

[wxPython] Получить идентификатор текущего фрейма.

PooH
Можно наследовать класс с логикой от класса формы
Т.е. получается, в applogic вынести два класса - по одному на каждый фрейм, и в этих классах отдельно определять функции для каждого фрейма?

UPD. Только вот вопрос - по сути то, это ведь будет уже новый класс, пусть и наследованный. При вызове данной функции родительским классом, она всё равно будет действовать лишь в пределах потомка.



Отредактировано (Янв. 3, 2011 10:39:37)

Офлайн

#6 Янв. 3, 2011 11:07:54

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

[wxPython] Получить идентификатор текущего фрейма.

Честно говоря, я не понял. Давайте посмотрим на конкретном примере.
ЗЫ: Только отвечу наверное уже завтра.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#7 Янв. 3, 2011 17:36:35

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

[wxPython] Получить идентификатор текущего фрейма.

Наследованием, как я и думал, не сработало, поэтому пришлось просто аттрибутом вызывать) Немного кривовато, конечно, но это лучшее из того, что вообще можно было сделать:)



Офлайн

#8 Янв. 3, 2011 18:43:57

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

[wxPython] Получить идентификатор текущего фрейма.

4umak
Наследованием, как я и думал, не сработало, поэтому пришлось просто аттрибутом вызывать) Немного кривовато, конечно, но это лучшее из того, что вообще можно было сделать:)
Наоборот :) Агрегирование обычно куда предпочтительнее наследования, поскольку гораздо гибче. За подробностями в GoF.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

  • Начало
  • » GUI
  • » [wxPython] Получить идентификатор текущего фрейма.[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version