Python 3.1, Tkinter/TTKпеременная Tkinter в другом классе
я написал что-то очень простое, чтобы попытаться понять, как переменные Tkinter, привязанный к виджетам могут быть сохранены в другом классе в виджете. Код ниже.
Вопросы:
1) почему не изменить, нажав на кнопку ярлык?
2) Мне нужно довольно много самолюбия? Могут ли переменные внутри каждого метода работать без себя. с самого начала?
Будем надеяться, что ответ будет полезным учебным упражнением для других TkInter новичков ...
from tkinter import *
from tkinter.ttk import *
root = Tk()
class Store:
def __init__(self):
self.v = IntVar()
self.v.set(0)
def set(self, v):
self.v.set(v)
class Main:
def __init__(self):
self.counter = 0
self.label = Label(root, textvariable = a.v)
self.label.pack()
self.button = Button(root, command = self.counter, text = '+1')
self.button.pack()
def counter(self):
self.counter = self.counter + 1
a.set(self.counter)
a = Store()
b = Main()
root.mainloop()
Ваш ответ не кажется, ответить на вопрос, который был задан. В вопросе конкретно задаются вопросы о нескольких классах. Кроме того, вы добавили код без каких-либо объяснений. Если кто-то просто изучает Tkinter, им будет сложно понять, что вы сделали по-другому, чтобы решить проблему. –
Я исправил свой ответ, хотя @BryanOakley Я не думаю, что мне нужно объяснить мою короткую версию, так как единственное * magic *, которое у нее есть, - это выражение lambda, которое не является tkinter, а проблема Python * , Во всяком случае, верните мои реплики :) –
объяснение необходимо, даже для коротких ответов, при ответе на вопросы неопытных людей. Как еще они могут знать, что решение проблемы (или нет) - использование лямбда или удаление классов или тот факт, что вы используете или не используете «я» или что-то еще полностью? Они не знают об этом, поэтому, когда вы просто даете им несколько строк кода, они вполне могут заключить, что классы не должны использоваться с tkinter, хотя это не тот момент, который вы пытались сделать. –