2016-09-30 62 views
0

這是怎麼回事?Tkinter ttk單選按鈕可變更新失敗

var = StringVar() 
radBut1 = ttk.Radiobutton(root, text='A - Z', variable=var, value='AtoZ') 
radBut2= ttk.Radiobutton(root, text='Z - A', variable=var, value='ZtoA') 

當我選擇2個單選按鈕之一時,var變量不會更新。我在不同的文檔資料和教程中發現了很多相互矛盾的材料(我嘗試了所有我發現的),但都無濟於事。

我使用下面的檢查var值:

print(var) 
+0

你如何檢查價值? 'print'是否在線程/定時器函數中運行?請詳細說明一下。 – nostradamus

+0

它的工作原理。嘗試打印(var.get())以獲取var的內容。如果需要,您可以初始化var var = StringVar(value ='AtoZ') – Jal

+0

感謝您確認這對您有用Jal。對我來說並非如此,也許是因爲諾查丹瑪斯預言:) – user3535074

回答

0

這工作:

def updateRadioButtonVariable(radioButtonVar,updateString): 
    radioButtonVar.set(updateString) 

#Sort Type Radio Button 
radioButtonVar = StringVar() 
radBut1= ttk.Radiobutton(root, text='A - Z', variable=radioButtonVar, value='AtoZ',command= lambda: updateRadioButtonVariable(radioButtonVar ,'AtoZ')) 
radBut2= ttk.Radiobutton(root, text='Z - A', variable=radioButtonVar, value='ZtoA',command= lambda: updateRadioButtonVariable(radioButtonVar ,'ZtoA')) 

不知道爲什麼原來的代碼(這幾乎是模板代碼與文檔)不起作用。如果有人有任何想法,請分享。