Форум сайта python.su
Всем привет!
Не так давно изучаю Python, точнее пытюсь сразу же перенести свой проект с Delphi на Python, но возникли некоторые вопросы.
Допустим в Делфи когда создаешь новую форму, то для доступа ко всем объектам этой формы нужно прописать модуль в uses, а затем использовать конструкцию FormName.ObjectName.Attribute. В 2-х словах плиз как правильно это сделать в Питоне?
Сейчас новые окна создаются при помощи объектов Toplevel(root) в главном модуле и по скольку все процедуры записаны в одном модуле, то проблем с доступом к объектам нет, но как разнести создание окон в отдельные модули и при этом иметь доступ к атрибутам объекта?
Офлайн
Они просто есть - без объявлений :)
Называется Duck Typing
Офлайн
погугил на тему “Duck Typing” и что-то не понял как привязать это к ответу на мой вопрос. Вы уж простите если не понял с полуслова, можно немного подробнее о моей задаче?
Офлайн
На самом деле это совсем просто.
У вас есть класс
class A(object):
def f(self):
pass
Офлайн
Вы разнесёте не обьекты, а классы. Сами же обьекты, наиболее вероятно, вы будете создавать внутри одного и того же модуля.
Офлайн
Ага теперь понял… понял, что вопрос сформулировал неверно :)
Объясню на примере на чем зациклился:
1. Есть главное окно со своими виджетами
from tkinter import *
root = Tk()
label_note = ttk.Label(root)
label_note['text'] = u'примечение'
label_note.pack()
root.mainloop()
toplevel_change = Toplevel(root)
toplevel_change.transient(root)
button_change = ttk.Button(toplevel_change, command=change_label)
button_change['text'] = 'Change'
button_change.pack()
Отредактировано (Окт. 19, 2009 01:04:02)
Офлайн
Просто передавай объект основного окна второму как параметр, а во втором окне обращайся не к текущему объекту (self), а к объекту основного окна.
Офлайн