2015-11-05 139 views
1

如何獲取Button(單擊或未按下)的狀態?這是一個按鈕狀態,而不是關於按鈕設置的變量的問題。如何判斷是否使用i.winfo_class()選擇了Frame中的對象來標識Radiobuttonpython tkinter單選按鈕狀態

for i in a.winfo_children(): 
    if i.winfo_class() == "Radiobutton": 
     i.get() 

單選按鈕有沒有get屬性,所以這不會有任何效果,但道理是一樣的。我瀏覽過文檔沒有成功。

回答

0

找到解決方案。 ttk.Radiobutton具有比tkinter.Radiobutton更多的功能。 請注意,即使是現在,Radiobuttons仍然存在所有方法和值解引用的主要問題。有時候你會得到一個指針,有時候你會得到一個字符串,並且需要自己解除引用。這使得Radibuttons比我一直在使用的大多數其他人更難處理。有很多這方面的文件,他們正在解決這個問題,但這是值得注意的。 出於我的目的,tkinter.Radiobutton沒有instate,這意味着沒有簡單的方法來檢查它是否被點擊。我得到指針後,指針和解引用是非常乏味和複雜的代碼爲動態gui。 我已經結束了的代碼如下:

for i in a.winfo_children(): 
    if i.winfo_class() == "TRadiobutton" and i.instate(['selected']) is True: 
     return i.cget('value') 

另外,還要注意的是TRadioButton字符串代替RadioButton,返回的對象類型不是單選框的ttktkinter實現之間的相同。

0

唯一的解決辦法是獲取關聯變量的值並將其與單選按鈕的值進行比較。如果它們相同,則選擇該單選按鈕。