通过引用Python tkinter creating buttons in for loop passing command arguments,我将代码修改为:
php artisan view:clear
这样就会有四个按钮“选项A”,“选项B”等等......
但是,发生的事情是我的窗户冻结而无法做任何事情。所以我把它关了。
当我改变这一行时,这不是问题:
self.listarray = ["Option A", "Option B", "Option C", "Option D"]
for i in range(len(self.listarray)):
self.buttonlist.append(tk.Button(self, text=self.listarray[i], command=lambda i=i: self.printthis(i)))
self.buttonlist[i].grid(column=1, row=i+1, sticky="W")
self.mainloop()
def printthis(self, thenum):
print thenum
self.destroy()
成为这个
self.buttonlist[i].grid(column=1, row=i+1, sticky="W")
但我也想自定义按钮的位置。我的代码中哪一部分错了?
答案 0 :(得分:0)
您的代码中出现错误的部分是您将grid
和pack
用于具有相同父级的窗口小部件的部分。您只能使用其中一个。如果您想使用grid
按钮,则必须对具有相同父级的每个窗口小部件使用grid
。