tkinter中按钮大小的浮点数



执行以下代码时,会出现一个错误,即不接受浮点数。那么,如何使用浮点数调整高度和宽度呢?

win = Tk()
btn = Button(win, width = 3.5 , height = 4.5)
btn.grid()
win.mainloop()

我不确定您是想以像素为单位指定按钮的大小,还是以合理数量的字符为单位指定,但在第一种情况下,请跳到答案的第二部分。

在这两种情况下,你都必须以像素为单位设置大小,如果你想以合理数量的字符指定它,你首先必须获得这些字符的大小:

import tkinter as tk
import tkinter.font as font
win = tk.Tk()
defaultfont = font.nametofont("TkDefaultFont")
width = defaultfont.measure("k") # has character length, not sure if this works on any platform
height = defaultfont.metrics()['linespace']
w = int(3.5*width)
h = int(4.5*height)

然后你必须以像素为单位设置按钮大小,你有两种可能性:

  1. 设置按钮图像,并以像素为单位指定大小(如Matiss建议的(
  2. 放置一个特定大小的框架,并使按钮横跨框架

像这样:

pixelVirtual = tk.PhotoImage(width=1, height=1)
btn = tk.Button(win, text='kkkk', image=pixelVirtual, width=w , height=h, compound="c")
btn.grid(row=0, column=1)
fr = tk.Frame(win, width=w, height=h, borderwidth=0, highlightthickness=0 )
fr.propagate(False)
fr.grid(row=1, column=1, sticky="nsew")
btn2 = tk.Button(fr, text='kkkk')
btn2.pack(expand=True, fill="both")

结果将不完全相同,因为在按钮中使用字符大小时会有一些填充(与默认的基于字符的方法中使用整数大小的按钮相比,您可以通过使用此方法制作整数大小的按键来看到这一点。(

最新更新