问题描述
我目前正在使用tkinter完成一个简单的Tic Tac Toe游戏,当按下时,这些框(按钮)会变为X或O。 为此,我使用了一个函数,用于按下按钮时使用文本变量更改按钮中的文本,如下所示:
T1text=Tk.StringVar()
T1=Tk.Button(nac, textvariable=T1text, width="25", height="12" , bg="red", command=updateT1)
T1.grid(row=1, column=0)
T1text.set("")
此部分是正在创建的按钮,并创建变量“ T1text”(顶部1),该变量将用于将按钮中的文本更改为O或X,如您所见,我首先将T1text设置为“”,这是更改功能:
if T1taken==1:
print("space taken")
elif player=="X":
T1text.set("X")
player="O"
playerText.set(player)
elif player=="O":
T1text.set("O")
player="X"
playerText.set(player)
这会将T1text中的文本更改为X或O。
我需要将字母X或O设置为较大的大小,因为它太小而无法在较大的框中看到。
到目前为止,这是我尝试过的:
T1text=Tk.StringVar()
T1=Tk.Button(nac, textvariable=T1text, font=("Helvetica", 70), width="25", height="12" , bg="red", command=updateT1)
T1.grid(row=1, column=0)
T1text.set("")
这会产生逻辑错误,使盒子变得笨重,我什至可以看到其他盒子,并且它们不在屏幕上。
我不知道还有什么可以尝试的,任何帮助将不胜感激。
非常感谢你!
1楼
几件事要注意:
- 使用自定义大小的字体时无需使用width和height选项,因为width和height随字体而变化
- 不要将默认值设置为空字符串,而是将其设置为包含两个空格的字符串
- 字体大小太大。 减少它。
我建议将大小更改为70到30。
代码中的重点不是使用width和height选项。
使用T1text.set(" ")
而不是T1text.set("")
这样在更改文本时大小不会有太大差异。
这是示例代码:
import tkinter as Tk
root = Tk.Tk()
T1text = Tk.StringVar()
T1 = Tk.Button(root, textvariable = T1text,font = ("Helvetica", 30) ,bg="red")
T1.grid(row = 1, column = 0)
T1text.set(" ")
root.mainloop()
这是另一个示例代码,可在单击时更改文本:
import tkinter as Tk
root = Tk.Tk()
def upd():
print(str(T1text.get()))
T1text.set("O" if str(T1text.get()) == "X" or str(T1text.get()) == " " else "X")
T1text = Tk.StringVar()
T1 = Tk.Button(root, textvariable = T1text,font = ("Helvetica", 30) ,bg="red",command=upd)
T1.grid(row = 1, column = 0)
T1text.set(" ")
root.mainloop()
您可以根据需要将字体的大小更改为较小或较大!