Python Tkinter Window 和小部件尺寸测量

Python Tkinter Window and Widget Size Measurements

有谁知道 tkinter 对象的测量单位是什么?

例如:

ws='400' #i am assuming these are in pixels
hs='400'
root=tk.Tk()
root.geometry(ws+'x'+hs)

...

self.w1=tk.Label(self.parent,width=int(int(ws)*5/8) #The width here probably isn't in pixels
self.w2=tk.Button(self.parent,width=int(int(ws)*3/8)

如果小部件 Label 和 Button 的宽度也以像素为单位进行测量,那么无论其宽度如何,这都应该很好地适合它们 window。但事实并非如此。相反,我进行了实验,发现将一个小部件的宽度除以 10,另一个小部件的宽度除以 25 就可以了。 那么这些中的任何一个是用什么单位测量的?

这取决于小部件,还取决于小部件的配置方式。对于 LabelButton 小部件,widthheight 指的是一些平均大小的字符(在内部,我相信它使用字符零的宽度和高度)。如果在标签或按钮中添加图像,则宽度指的是像素数。

避免硬编码像素值通常会获得最佳效果。 Tkinter 非常擅长计算小部件的适当大小,然后将它们放入 window。