Python Tkinter窗口和小部件大小度量

Python Tkinter窗口和小部件大小度量,python,tkinter,size,measurement,Python,Tkinter,Size,Measurement,有人知道用tkinter对象进行测量的单位是什么吗 例如: ws='400' #i am assuming these are in pixels hs='400' root=tk.Tk() root.geometry(ws+'x'+hs) 如果widgets标签和按钮中的宽度也是以像素为单位测量的,那么无论窗口的宽度如何,它们都应该适合窗口。但事实并非如此。相反,我进行了实验,发现一个小部件的宽度除以10,另一个小部件的宽度除以25就可以了。 那么,以什么单位来测量这两个部件呢?这取决于小

有人知道用tkinter对象进行测量的单位是什么吗

例如:

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

如果widgets标签和按钮中的宽度也是以像素为单位测量的,那么无论窗口的宽度如何,它们都应该适合窗口。但事实并非如此。相反,我进行了实验,发现一个小部件的宽度除以10,另一个小部件的宽度除以25就可以了。
那么,以什么单位来测量这两个部件呢?

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


通过避免硬编码像素值,通常可以获得最佳结果。Tkinter非常擅长计算小部件的适当大小,然后将它们安装到窗口中

就像@bryan oakley说的!有些是像素,有些是相对的。我做了微积分,结果是1个像素等于0.14个字符,1个字符等于7.1个像素。工作得很有魅力@不同的字体有不同的大小。另外,如果使用可变宽度字体,某些字符占用的空间比其他字符少。例如,字母“i”所需的像素比字母“m”少。@BryanOakley可能,但我尝试使用空白标签元素。因此,我猜我上面给出的值对于标签使用的默认字符字体/大小应该是真的。@Akenaten:对于您的特定计算机配置,它将是真的。在其他机器上可能不是这样,如果切换字体系列或字体大小,几乎肯定不会是这样。
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)