当前位置: 代码迷 >> python >> 使用文本变量时在tkinter中更改按钮的字体大小
  详细解决方案

使用文本变量时在tkinter中更改按钮的字体大小

热度:87   发布时间:2023-07-14 09:49:46.0

我目前正在使用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("")

这会产生逻辑错误,使盒子变得笨重,我什至可以看到其他盒子,并且它们不在屏幕上。

我不知道还有什么可以尝试的,任何帮助将不胜感激。

非常感谢你!

几件事要注意:

  • 使用自定义大小的字体时无需使用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()

您可以根据需要将字体的大小更改为较小或较大!

  相关解决方案