如何使用tkinter在模块之间返回值?

时间:2019-02-18 20:00:38

标签: python tkinter

我的程序中有一个模块,可以在短时间内使用另一个模块中的类来创建对象。当对象被销毁后,我需要返回一个值。

这是创建的对象:

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 rootroot被销毁后,该值将不再存在。而且,一旦我在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

0 个答案:

没有答案