Skip to main content
 首页 » 编程设计

python之Tkinter 中指定的 Canvas 单位是什么

2025年05月04日23qlqwjy

我知道这是一个微不足道的问题,但我还是很困惑。

我有一台配备视网膜显示屏的 13 英寸 MacBook Pro。我的系统在系统报告中声称分辨率为 2560 x 1600。我假设 tkinter 中的 Canvas 命令以像素为单位测量高度和宽度,而 tk documentation似乎也表明了这一点。然而,在下面的代码中,我使用 1200 作为 tkinter Canvas 的宽度和 700 作为高度,生成的 Canvas 大部分填满了我的屏幕。

Canvas 高度和宽度的单位是什么?

from tkinter import * 
 
master = Tk() 
 
x = 1200 
y = 700 
 
w = Canvas(master, width=x, height=y) 
w.pack() 
 
 
mainloop() 

请您参考如下方法:

你是对的,TkInter 确实以像素为单位测量大小。但是:

Retina 显示屏具有更高密度的硬件 像素,使显示屏看起来更清晰。但是,请注意,这些与程序使用的渲染像素并不一一对应。 来自 Wikipedia :

When an Apple product has a Retina Display, each user interface widget is doubled in width and height to compensate for the smaller pixels. Apple calls this mode HiDPI mode

任何具有高像素密度 (DPI) 的显示器也是如此。 因此,如果您希望您的小部件处于屏幕宽度/高度的特定百分比,您应该首先检测您是否在 HiDPI 显示器上并相应地缩放您的小部件。 This question可能有帮助。