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

标签 python tkinter tkinter-canvas

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

我有一台配备视网膜显示屏的 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/

相关文章:

python - 使用变量评估数据框列中的字符串

python - Jupyter 笔记本 pandas_profiling : cannot import name 'to_html' from 'pandas_profiling.report'

python - 在 Python 中将 JSON 转换为 HTML 表

python - python中tkinter中的 'width'和 'padx'有什么区别?

python - 如何在Python中访问字典中的某个列表条目?

python - 由于自定义标题栏,应用程序的图标未显示在任务栏中?

python - 从源代码安装 Python 并且无法导入 Tkinter - 如何安装?

python - 如何让圆圈的运动更加流畅?

python - 带有主循环的可更新 tkinter Canvas

python-2.7 - tkinter canvas create_arc 方法给出圆边弧