【发布时间】:2018-12-01 21:17:44
【问题描述】:
这适用于以下代码:
from tkinter import *
root = Tk()
root.title("Tic Tac Toe")
btn = []
def btnClicked (btnNum):
print(btnNum)
b=0
for a in range(9):
if(a%3 == False):
b = b+1
btn.append(Button(root, text="", command = lambda c=a: btnClicked(c), height = 10, width = 20).grid(row = a-3*(b-1), column=b))
root.mainloop()
但是,为了对这些按钮执行操作,我需要将它们打包,如下所示:
from tkinter import *
root = Tk()
root.title("Tic Tac Toe")
btn = []
def btnClicked (btnNum):
print(btnNum)
btn[btnNum]["text"] = "X"
b=0
for a in range(9):
if(a%3 == False):
b = b+1
btn.append(Button(root, text="", command = lambda c=a: btnClicked(c), height = 10, width = 20).grid(row = a-3*(b-1), column=b))
btn[a].pack()
root.mainloop()
当我运行此代码时,我收到以下错误:
AttributeError: 'NoneType' 对象没有属性 'pack'
虽然此代码有效,但我不希望在网格中排列按钮时使用它,如下所示:
from tkinter import *
root = Tk()
root.title("Tic Tac Toe")
btn = []
def btnClicked (btnNum):
print(btnNum)
btn[btnNum]["text"] = "X"
b=0
for a in range(9):
if(a%3 == False):
b = b+1
btn.append(Button(root, text="", command = lambda c=a: btnClicked(c), height = 10, width = 20))
btn[a].pack()
root.mainloop()
如何消除第二个代码示例中的错误或在第三个示例中分别对齐网格中的按钮?
【问题讨论】:
标签: python python-3.x tkinter