環(huán)境:
系統(tǒng):Windows10 x64
Python:Python 2.7.12
tkinter:Python自帶
問題說明:
在tkinter中有兩個OptionMenu,一個是tkinter.OptionMenu融虽,另一個是ttk.OptionMenu。
tkinter.OptionMenu外觀丑吐葵,有點反人類额划。
ttk.OptionMenu美觀,但在使用中發(fā)現(xiàn)一旦用戶選擇選項后袍患,第一個選項內(nèi)容會消失。
示例:
import Tkinter as tk
import ttk
root=tk.Tk()
v=tk.StringVar()
var=['one','two','three']
v.set(var[0])
a=ttk.OptionMenu(root,v,*var)
a.grid()
root.mainloop()
下面分別是用戶選擇前和選擇后的截圖竣付,從選擇后的截圖上可以看出來诡延,'one'這個選項沒有了。
不太清楚這是否是tkk.OptionMenu組件的一個BUG古胆,還是我使用的方法不正確肆良。
問題解決:
因為選擇后只有第一個選項會消失,所以我們只要在代碼中將第一個選項設(shè)置為一個空字符串就可以解決此問題逸绎,而相應(yīng)的默認(rèn)選項也要改為第二項:
import Tkinter as tk
import ttk
root=tk.Tk()
v=tk.StringVar()
var=['','one','two','three']
v.set(var[1])
a=ttk.OptionMenu(root,v,*var)
a.grid()
root.mainloop()
效果如下: