我意识到这是一个微不足道的问题,但我仍然感到困惑。
我有一台带有视网膜显示屏的13英寸MacBook Pro。我的系统声称系统报告中的分辨率为2560×1600。我假设tkinter中的Canvas命令测量的高度和宽度(以像素为单位),tk documentation似乎也表明了这一点。然而下面的代码,我使用1200作为宽度,700作为tkinter画布的高度,产生一个主要填充我的屏幕的画布。
画布的高度和宽度是多少单位?
from tkinter import *
master = Tk()
x = 1200
y = 700
w = Canvas(master, width=x, height=y)
w.pack()
mainloop()
答案 0 :(得分:5)
你是对的,TkInter确实以像素为单位测量大小。但是:
Retina Display具有更高密度的硬件像素,使显示效果更加清晰。但请注意,这些与程序使用的渲染像素不一一对应。 来自Wikipedia:
当Apple产品具有Retina显示屏时,每个用户界面小部件的宽度和高度都会加倍,以补偿较小的像素。 Apple将此模式称为HiDPI模式
任何包含高像素密度(DPI)的显示器也是如此。 因此,如果您希望窗口小部件处于屏幕宽度/高度的某个百分比,则应首先检测您是否在HiDPI显示器上并相应地缩放窗口小部件。 This question可能有帮助。