Макроструктура в app.py (импортирована в другие файлы как wc):
Код: Выделить всё
class Class:
def __init__(self, root):
# Root window
self.root = root
...
self.root.mainloop()
if __name__ == "__main__":
root = tk.Tk()
Class(root)
root.mainloop()
Каждая вкладка, в свою очередь, имеет две вложенные вкладки. фреймы, один содержит форму, другой — для виджетов управления.
Все эти фреймы и их виджеты создаются с тем же отступом, что и корневое окно.
Один виджет предназначен для зафиксировать выбор страны пользователем:
Код: Выделить всё
self.country_input = tk.StringVar()
self.country_box = ttk.Combobox(self.tab2_form, values=countries, textvariable=self.country_input, width=self.classboxw)
self.country_box.grid(row=2, column=1, sticky=("N", "E", "S", "W"), padx=10, pady=5)
self.country_box.bind("", ops.set_country)
Методы находятся в отдельном пользовательском модуле Operations.py (импортируются как ops).Если я попробую это:
Код: Выделить всё
country = ""
def set_country(self):
country = wc.self.country_input.get()
"AttributeError: объект типа "Класс" не имеет атрибута "self""
Это я не понимаю Не понимаю, я думал, что все виджеты в классе app.py являются атрибутами класса?
Если я попробую это (исключив «self» из ссылки):
Код: Выделить всё
country = ""
def set_country(self):
country = wc.country_input.get()
"AttributeError: объект типа "Класс" не имеет атрибута "country_input""
Как еще это сделать относятся к переменной, к которой я хочу получить доступ?
Подробнее здесь: https://stackoverflow.com/questions/785 ... ibute-self