【问题标题】:Input in different entry fields with same buttons TKINTER使用相同的按钮 TKINTER 在不同的输入字段中输入
【发布时间】:2022-01-08 22:33:15
【问题描述】:

These are the entry fields and the buttons

我想用 2 个按钮在这些不同的输入字段中输入“X”和“O”,但我只能通过调用函数在第一个框中输入。我如何对其他盒子做同样的事情? 就像我的光标在第 5 个框中,我想从第 5 个框中的按钮输入符号。

代码:

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()

【问题讨论】:

  • 我建议您对键盘焦点的概念以及如何获得焦点的小部件进行一些研究。
  • 谢谢!会的。

标签: python tkinter button tkinter-entry


【解决方案1】:

您的按钮只能有一个命令。我还没有真正尝试过,但是您可以在按下命令后立即将命令设置为其他内容。因此,您可以选择跟踪光标的位置,然后循环检查光标所在的位置,然后单击按钮时,它会获取光标的当前位置,具体取决于它会更改命令按钮,以便将 X 或 O 放置在光标所在的位置。

如果这太复杂了,您也可以只创建 9 个按钮并使用一个名为 active_player 或 player_turn 的变量或类似的东西。如果等于 1 玩家 1 正在移动,如果它 2 则玩家 2 移动。当任何玩家然后单击其中一个按钮时,您只需检查它是谁移动,然后放置一个 X 或一个 O 并更改 active_player 或 player_turn 方法,以便其他玩家移动。

【讨论】:

  • 谢谢!我使用不同的代码制作了程序,但我也会尝试一下!
猜你喜欢
  • 2018-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多