嗨,我使用并创建了一个按钮列表。我一直试图对它进行编程,所以如果你按下一个按钮,上面的文字就会变成X或O(对于游戏tic脚趾)。我尝试使用按钮"text“=”text“,但它只是出现了一个错误。以下是目前为止的代码:
from tkinter import *
import tkinter.messagebox
tk=Tk()
tk.title("Tic Tac Toe")
bclick = True
buttons = [" "," "," "," "," "," "," "," "," ",]
button_list = [" "," "," "," "," "," "," "," "," ",]
def make_button(n, row, col):
button_list[n] = Button(tk,text=" ",bg='gray',fg='white',height=4,width=8,command=lambda:ttt(buttons, n))
button_list[n].grid(row=row,column=col, sticky=S+N+E+W)
button_list[n] = n
a = 0
B = [0,0,0,1,1,1,2,2,2]
C = [0,1,2,0,1,2,0,1,2]
while a != 9:
b=B[a]
c=C[a]
make_button(a, b, c)
a+=1
def ttt(buttons, n):
global bclick
if buttons[n] == " " and bclick == True:
buttons[n] = "X"
button_list[n]["text"] = "X"
bclick = False
elif buttons[n] == " " and bclick == False:
buttons[n] = "O"
bclick = True
注释中的错误:
在ttt button_listn = "X“TypeError:'int‘对象中,文件"C:\Users\Eva Morris\Documents\计算\Tic-Tac-Toe.py”第28行不支持项分配。
发布于 2018-09-17 13:13:41
问题在于您的代码-您用整数覆盖Button实例:
def make_button(n, row, col):
button_list[n] = Button(tk,text=" ",bg='gray',fg='white',height=4,width=8,command=lambda:ttt(buttons, n))
button_list[n].grid(row=row,column=col, sticky=S+N+E+W)
button_list[n] = n # here you are assigning an INT to button_list[n]
在int
上,不支持通过["text"]
进行访问。这就是错误信息告诉你的。这就是为什么向我们提供准确的错误问题的原因。
https://stackoverflow.com/questions/52373184
复制相似问题