消失的Tkinter 小部件之謎
您面臨著一個令人困惑的問題,您的Tkinter 按鈕在數組中存儲為None ,呈現當您嘗試呼叫它們時,它們將無法存取。
問題的根源
罪魁禍首在於您用來定位按鈕的網格方法。該方法“就地”運行並且不可避免地返回 None,這意味著您不能在創建小部件後直接調用它。相反,您需要將這兩個操作分開。
修正
要解決此問題,請修改您的程式碼,如下所示:
<code class="python">b[c+(r*10)] = Button(f, text=chr(97+c+(r*10)), command=lambda a=c+(r*10): color(a), borderwidth=1,width=5,bg="white") b[c+(r*10)].grid(row=r,column=c)</code>
透過分離這些操作,您可以確保按鈕已創建,然後正確放置在網格中。
理解「就地」方法
在Tkinter 中,網格、 pack 和place 方法「就地」運行,這意味著它們會自動修改調用它們的小部件。由於這些方法不會傳回修改後的小部件,因此您無法在同一行上對小部件執行任何進一步的操作。
其他資源
了解更多詳細資訊關於Tkinter 中widget 佈局的理解,請參考以下資源:
以上是以下是一些標題選項,使用不同的方式來表達問題並專注於核心問題: 直接且切中要害: * 為什麼我的 Tkinter 按鈕突然變成「無」? * Tkinter 布的詳細內容。更多資訊請關注PHP中文網其他相關文章!