Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 7, 2011 12:14:06

jsnjack
От:
Зарегистрирован: 2011-09-07
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Идеология Python. Классы

Здравствуйте. Я пишу программу на wxPython. Структура такова, что для главного окна программы я создал свой класс.

class MyFrame(wx.Frame):
...
Когда мне понадобилось вызвать еще одно окно в программе, я добавил еще один класс (в том же файле).
class AddImageDialog(wx.Dialog):
def __init__(self, parent, title):
super(AddImageDialog, self).__init__(parent, -1, title)
...
Вопрос состоит в том, как мне данные, например, из текстового поля второго окна скопировать в первое? Как осуществлять обмен данных между классами?



Отредактировано (Сен. 7, 2011 12:17:15)

Офлайн

#2 Сен. 7, 2011 16:01:08

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Идеология Python. Классы

Если речь идет об обмене данными между инстансами - тогда ничего сложного нет. Если же необходимо конструировать второе окно, опираясь на данные из первого - нужно либо вызывать конструктор второго класса в методе первого, либо сначала брать из инстанса первого класса название, а затем передавать его в конструктор второго. Обычные ООП-вещи, даже без привязки к wxWidgets.



Офлайн

#3 Сен. 13, 2011 17:42:24

Griffon
От: Ukrain, Zaporozhie
Зарегистрирован: 2009-03-04
Сообщения: 324
Репутация: +  11  -
Профиль   Отправить e-mail  

Идеология Python. Классы

В любом случае между окнами есть какое-то отношение. Либо первое открывается из второго, либо второе из первого, либо оба открываются из третьего. В любом случае банальная колбэк функция заданная при создании окна (либо просто вызов гарантированно имеющейся функции родительского окна) решает все вопросы.



Офлайн

#4 Сен. 28, 2011 15:04:48

jsnjack
От:
Зарегистрирован: 2011-09-07
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Идеология Python. Классы

Griffon, Enchantner
спасибо, разобрался



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version