我的程序中有一个模块,可以在短时间内使用另一个模块中的类来创建对象。当对象被销毁后,我需要返回一个值。
这是创建的对象:
class ButtonWindow():
def __init__(self, master, posx, posy):
''' Initialises the TK root window'''
self.master = master
master.configure(bg = "light pink")
master.geometry("20x40+" + str(posx) +"+"+str(posy-20))
master.option_add("*Font", "Helvetica")
options = ("Public", "Child", "Over 65", "Staff", "Governor")
self.bookingType = StringVar()
self.bookingType.set(options[0])
seatingMenu = OptionMenu(master, self.bookingType, *options, command=self.updateValue)
seatingMenu.pack(side=TOP)
def updateValue(self,value):
self.master.destroy()
return self.bookingType.get()
如您所见,当更改选项菜单的值时,我需要在其他模块中更新变量的值。如何从此类返回值,并同时销毁tk root
? root
被销毁后,该值将不再存在。而且,一旦我在updateValue
中返回了一个值,它就无法再运行destroy
函数。我需要能够同时做到。
创建对象的位置:
self.seatMenu = seat_menu.createWindow(self.button.winfo_rootx(),
self.button.winfo_rooty(), self.master)
self.bookingType = #get the value of the option menu from the
#self.seatMenu window