對於我正在編寫的代碼,我試圖設置它以便在Tkinter UI中,當您按下按鈕時,該按鈕將變爲禁用狀態,並且當您按下按鈕時另一個按鈕被禁用,當前禁用的按鈕將再次啓用。Tkinter按鈕已禁用/啓用點擊
import tkinter as tk
from tkinter import ttk
def btnPressed(index):
print("Button {0} disabled".format(index))
for i in range(len(buttons)):
print("Button {0}, State: {1}".format(index, buttons[index]['state']))
if buttons[i]['state'] == 'disabled':
buttons[i].configure(state = 'normal')
buttons[index].configure(state = 'disabled')
root = tk.Tk()
buttons = []
btn1 = ttk.Button(root, text = "Button 1", command = lambda: btnPressed(0))
btn1.pack()
buttons.append(btn1)
btn2 = ttk.Button(root, text = "Button 2", command = lambda: btnPressed(1))
btn2.pack()
buttons.append(btn2)
btn3 = ttk.Button(root, text = "Button 3", command = lambda: btnPressed(2))
btn2.pack()
buttons.append(btn3)
root.mainloop()
現在我可以得到它,讓按鈕禁用自己,但是不會回到它們的「正常」狀態。我試圖做一些bug測試將
print("Button {0}, State: {1}".format(index, buttons[index]['state']))
for循環,所以我可以看到每一個按鈕的當前狀態對其進行檢查的if語句之前。
每個按鈕,雖然在用戶界面上被禁用,仍然有一個狀態值'normal'
。所以顯然有些問題,但我不確定那是什麼。
甜菜給我吧。我正要發佈我的答案:P。 –
非常感謝。我無法弄清楚這是爲什麼我無法檢查值類型的IDLE調試器。 – Skitzafreak