Python 中为Tkinter指定了哪些画布单位?

Python 中为Tkinter指定了哪些画布单位?,python,tkinter,tkinter-canvas,Python,Tkinter,Tkinter Canvas,我意识到这是一个微不足道的问题,但我还是感到困惑 我有一台13英寸的MacBookPro,带有视网膜显示屏。我的系统在系统报告中声明分辨率为2560x1600。我假设tkinter中的Canvas命令以像素为单位测量高度和宽度,而。但是下面的代码,我使用1200作为tkinter画布的宽度,700作为高度,生成了一个画布,它主要填充了我的屏幕 画布的高度和宽度以什么单位表示 from tkinter import * master = Tk() x = 1200 y = 700 w = C

我意识到这是一个微不足道的问题,但我还是感到困惑

我有一台13英寸的MacBookPro,带有视网膜显示屏。我的系统在系统报告中声明分辨率为2560x1600。我假设tkinter中的Canvas命令以像素为单位测量高度和宽度,而。但是下面的代码,我使用1200作为tkinter画布的宽度,700作为高度,生成了一个画布,它主要填充了我的屏幕

画布的高度和宽度以什么单位表示

from tkinter import *

master = Tk()

x = 1200
y = 700

w = Canvas(master, width=x, height=y)
w.pack()


mainloop()

你是对的,TkInter是用像素来测量尺寸的。但是:

视网膜显示器具有更高的硬件像素密度,使显示器看起来更清晰。但是,请注意,这些与程序使用的渲染像素不一一对应。 发件人:

当苹果产品有视网膜显示器时,每个用户界面部件的宽度和高度都会加倍,以补偿较小的像素。苹果称这种模式为HiDPI模式

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

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

视网膜显示器具有更高的硬件像素密度,使显示器看起来更清晰。但是,请注意,这些与程序使用的渲染像素不一一对应。 发件人:

当苹果产品有视网膜显示器时,每个用户界面部件的宽度和高度都会加倍,以补偿较小的像素。苹果称这种模式为HiDPI模式

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

它必须具有“每像素点数”设置,其中视网膜显示器使用2个点(您测量为2560x1600)表示1个像素(由程序定义)。维基百科:当苹果产品有视网膜显示器时,每个用户界面部件的宽度和高度都会加倍,以补偿较小的像素。苹果称这种模式为HiDPImode@CiprianTomoiaga啊,这完全有道理。谢谢我不知道。它一定是“每像素点数”设置的东西,视网膜显示器使用2个点(你测量为2560x1600)作为1个像素(由程序定义)。维基百科:当苹果产品有视网膜显示器时,每个用户界面部件的宽度和高度都会加倍,以补偿较小的像素。苹果称这种模式为HiDPImode@CiprianTomoiaga啊,这完全有道理。谢谢我不知道那件事。