[英]Python 3.4 tkinter, not clearing frame after selecting a option from a menu
[英]Saving output after choosing option menu (python - Tkinter)
在用戶點擊 OK 按鈕並且 window 在 Tkinter 中關閉之后,我試圖保存用戶的選擇 [Red, Green-red, Green-blue, blue] ......到目前為止,我已經使用了一些東西我在網上找到了,但我無法推斷出一種“簡單”的方法?
def select_channel():
OPTIONS = [
"Red",
"Green-red",
"Green-blue",
"Blue"
]
master = tk.Tk()
var = tk.StringVar(master)
var.set(OPTIONS) # initial value
option = tk.OptionMenu(master, var, *OPTIONS)
option.pack()
def ok():
print("value is", var.get())
channel = var.get()
master.destroy()
button = tk.Button(master, text="OK", command=ok)
button.pack()
tk.mainloop()
有什么想法嗎? 我將它保存在頻道下,但它在 function 之外不可用。 唔
使用global
為全局變量賦值
def ok():
global channel
print("value is", var.get())
channel = var.get()
master.destroy()
BTW:使用return channel
沒有意義,因為 function 是通過按鈕執行的,它不能返回值並分配給其他值。
順便說一句:如果你只想保存channel
,那么可以在 function ok()
順便說一句:您應該在var.set(OPTIONS[0])
中使用[0]
僅將第一個元素設置為默認/初始值。
import tkinter as tk
# --- functions ---
def select_channel():
def ok():
global channel
#print("value is", var.get())
channel = var.get()
master.destroy()
OPTIONS = [
"Red",
"Green-red",
"Green-blue",
"Blue"
]
master = tk.Tk()
var = tk.StringVar(master)
var.set(OPTIONS[0]) # initial value
option = tk.OptionMenu(master, var, *OPTIONS)
option.pack()
button = tk.Button(master, text="OK", command=ok)
button.pack()
tk.mainloop()
# --- main ---
select_channel()
print('after closing window:', channel)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.