我知道这是一个微不足道的问题,但我还是很困惑。
我有一台配备视网膜显示屏的 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可能有帮助。
关于python - Tkinter 中指定的 Canvas 单位是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41818260/