Я пытаюсь создать графический интерфейс в Python с использованием модуля Tkinter, и часть этого заключается в предоставлении пользователю возможности выбора двух радиобоксов и выбора того, который им нужен. В зависимости от того, какое поле они отмечают, он запускает разные функции, которые возвращают разные результаты - результаты, которые я затем хочу использовать вне класса окна. Но я не знаю, как отправить значение из класса в класс; Я уверен, что это довольно просто, но я не могу на всю жизнь решить это.
Мой текущий код:
class BatchIndiv():
def __init__(self, master):
self.master=master
self.startwindow()
self.b=0
def startwindow(self):
self.var1 = IntVar()
self.textvar = StringVar()
self.Label1=Label(self.master, text="Batch or indivdual import?")
self.Label1.grid(row=0, column=0)
self.Label2=Label(self.master, textvariable=self.textvar)
self.Label2.grid(row=2, column=0)
self.rb1 = Radiobutton(self.master, text="Batch", variable=self.var1,
value=1, command=self.cb1select)
self.rb1.grid(row=1, column=0, sticky=W)
self.rb2 = Radiobutton(self.master, text="Individual", variable=self.var1,
value=2, command=self.cb1select)
self.rb2.grid(row=1, column=1, sticky=W)
self.Button1=Button(self.master, text="ok", command=self.ButtonClick)
self.Button1.grid(row=1, column=2)
def ButtonClick(self):
if (self.var1.get())==1:
b=BatchImport()
return b
self.master.quit()
self.master.destroy()
elif (self.var1.get())==2:
b=IndivImport()
return b
self.master.quit()
self.master.destroy()
else: pass
def cb1select(self):
return self.var1.get()
#End of class definition.
#Code:
root=Tk()
window=BatchIndiv(root)
b=BatchIndiv.ButtonClick.b
root.mainloop()
....
Рассматривайте функции BatchImport и IndividualImport как черные ящики, они просто возвращают целочисленное значение, которое я назначаю переменной b внутри ButtonClick (). Мне нужно это значение, чтобы сделать некоторые вещи ниже root.mainloop (), (т.е. где .... находится), но я не знаю, как его получить. Tkinter действительно раздражает, тем более, что у всех разные методы работы, поэтому онлайн-документация никогда не бывает одинаковой - пытался делать то, что было написано на разных, и это просто дало мне более приятные сообщения об ошибках.
Буду признателен за любую помощь.
PS - как я могу закрыть окно, когда кнопка нажата, и все же отправить значение b обратно остальной части кода, а не просто выйти из Python полностью? Как видите, я пытался использовать .quit () и .destroy (), но безуспешно.