这些是输入字段和按钮
我想输入";X〃;以及";O〃;在这些带有2个按钮的不同输入字段中,但我只能通过调用函数在第一个框中输入。我如何对其他盒子进行同样的处理?就像如果我的光标在第五个框中,我想从第五个方框中的按钮输入符号。
代码:
from tkinter import *
root=Tk()
e1=Entry(root,font=("arial",50),width=2,borderwidth=5)
e2=Entry(root,font=("arial",50),width=2,borderwidth=5)
e3=Entry(root,font=("arial",50),width=2,borderwidth=5)
e4=Entry(root,font=("arial",50),width=2,borderwidth=5)
e5=Entry(root,font=("arial",50),width=2,borderwidth=5)
e6=Entry(root,font=("arial",50),width=2,borderwidth=5)
e7=Entry(root,font=("arial",50),width=2,borderwidth=5)
e8=Entry(root,font=("arial",50),width=2,borderwidth=5)
e9=Entry(root,font=("arial",50),width=2,borderwidth=5)
def enterX(sign):
e1.delete(0,END)
e1.insert(0,sign)
def enterO(sign):
e1.delete(0,END)
e1.insert(0,sign)
b1=Button(root,text=("X"),command=lambda: enterX("X"),fg="blue")
b2=Button(root,text=("O"),command=lambda: enterO("O"),fg="red")
b3=Button(root,text="Exit Program",command=root.quit)
e1.grid(row=0 , column=0,padx=5,pady=20)
e2.grid(row=0 , column=1,padx=5,pady=20)
e3.grid(row=0 , column=2,padx=5,pady=20)
e4.grid(row=1 , column=0,padx=5,pady=20)
e5.grid(row=1 , column=1,padx=5,pady=20)
e6.grid(row=1 , column=2,padx=5,pady=20)
e7.grid(row=2 , column=0,padx=5,pady=20)
e8.grid(row=2 , column=1,padx=5,pady=20)
e9.grid(row=2 , column=2,padx=5,pady=20)
b1.grid(row=3,column=0)
b3.grid(row=4,column=1)
b2.grid(row=3,column=2)
root.mainloop()
您的按钮只能有一个命令。我还没有真正尝试过,但你可以在按下命令后立即将其设置为其他命令。因此,你可以选择跟踪光标的位置,然后进行循环检查,不断检查光标的位置。然后单击按钮,它会获得光标的当前位置,根据情况,它会更改按钮的命令,以便将X或O放置在光标所在的位置。
如果这太复杂了,你也可以只创建9个按钮,并有一个名为active_player或player_turn之类的变量。如果这等于1,则玩家1正在移动,如果是2,则为玩家2的移动。当任何玩家点击其中一个按钮时,你只需检查它是谁的移动,然后放置X或O,并更改active_player或player_turn方法,使其他玩家移动。