7
我想根據某些內部邏輯來更改ttk.Button的狀態。我創建了一個按鈕,並與它的風格聯繫起來:Python:ttk:禁用/啓用按鈕
cardBtnStyle = ttk.Style()
cardBtnStyle.configure('CB.TButton')
cardBtn = ttk.Button(top, text="Make SD card", style='CB.TButton', command = cardCreateCallBack).grid(column=1, row=5)
以下聲明沒有影響:
style.configure('CB.TButton', state='disabled')
但是,當我創建這樣一個按鈕,它已被禁用:
cardBtn = ttk.Button(top, text="Make SD card", style='CB.TButton', state='disabled', command = cardCreateCallBack).grid(column=1, row=5)
如何在Python中更改ttk.Button狀態?
操作系統:Ubuntu的13.10
的Python:2.7.5+
我獲得以下錯誤:異常在Tkinter的回調 回溯(最近通話最後一個): 文件「/usr/lib/python2.7/lib-tk/ (* args) 文件「/usr/lib/python2.7/lib-tk/Tkinter.py」,第534行,在callit中 func(* args)第1473行,在__call__中 返回self.func ) 文件「./viaVPN-Production.py」,第42行,在state_thread中 cardBtn.state([「disabled」]) AttributeError:'NoneType'對象沒有'state'屬性 – yegorich
@yegorich,錯誤消息的意思是那個'cardBtn'設置爲「無」。然而,你的問題中的代碼爲它分配了一個'ttk.Button'的實例,所以它不應該是這種情況。在初始化按鈕實例後仔細檢查你是否調用了'state()'。 –
我想我已經發現了這個問題:如果你立即放置它('.grid()'或'.pack()'),你就不能創建一個對象。它必須分兩個階段完成:創建一個對象然後放置它。這樣你可以使用它的手柄。 – yegorich