我第一次嘗試使用 tkinter 時遇到了麻煩。我需要創建很多按鈕,因此為了使代碼看起來更簡潔一些,我使用了 for 循環和動態變量名稱來創建每個按鈕。這樣做的問題是,當創建每個按鈕時,都會為該按鈕運行 btnClick(x)。所以我有 PING!1,平安!2,...在我的終端。最重要的是,按鈕在創建窗口后沒有響應(單擊它們沒有響應)。有沒有辦法使用 for 循環/動態變量并讓按鈕工作,或者是為每個按鈕寫出來的唯一方法?from tkinter import *window = Tk()btns = {}btnNames = ["Description", "Tags", "Display", "Armor", "Hit Points", "Damage", "Speed", "Ability Scores", "Saving Throws", "Skills", "Vulnerabilities", "Resistances", "Immunities (Damage)", "Immunities (Conditions)", "Senses", "Languages", "Traits", "Actions", "Reactions", "Paragon Actions", "Ledgendary Actions", "Lair Actions", "Notes"]def StartWindow(): # set Basics window.title("Monster Maker") window.geometry('900x600') # Set Icon window.iconbitmap("Sources/Icon.ico") MonsterMaker() # Run window window.mainloop()def MonsterMaker(): for x in range(23): name = "btn" + str(x) btns[name] = Button(window, text=btnNames[x], command=btnClick(x), width=20, height=1) btns[name].grid(column=0, row=x)def btnClick(index): print("PING! " + str(index))if __name__ == "__main__": StartWindow()```
動態創建按鈕會導致命令觸發
慕桂英4014372
2022-11-18 18:22:18