cli后销毁Tkinter按钮

2024-04-25 14:37:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Tkinter列表框,上面填有城市名称。我想获取所选的值,并在主循环之后将其传递给后续代码。我有以下tkinker代码:

master = tk.Tk()

variable = StringVar(master)
variable.set(cities_list[0]) # default value

w = OptionMenu(master, variable, *cities_list)
w.pack()

def ok():
    print ("value is:" + variable.get())
    return  variable.get()
    window.destroy()


button = Button(master, text="OK", command=ok)
button.pack()

mainloop()


v_list = variable.get().split('-')

按钮卡在一个回路中,无法闭合。我想在选择后关闭按钮。我都试过了”窗口.销毁()“和”主人。毁灭()”

我做错什么了?在


Tags: 代码master名称getvaluetkinterbuttonok
1条回答
网友
1楼 · 发布于 2024-04-25 14:37:24

您的按钮不会destroy,因为它的函数在执行此操作之前“返回”。这也是不好的,因为commandcallback method can't really ^{} anywhere meaningful。执行以下更改:

some_outer_scope_var = None

def ok():
    global some_outer_scope_var
    some_outer_scope_var = variable.get()
    print ("value is:" + variable.get())
    master.destroy()

这样,您首先在some_outer_scope_var上保存variable.get()的值,然后destroy所有GUI。在

相关问题 更多 >