如何获取tkin中的真实屏幕尺寸

2024-04-19 15:03:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个tkinter应用程序,我希望小部件在显示屏上以英寸为单位指定尺寸。我有一个24英寸的三星显示屏插在一个Mac Mini上。显示屏宽约520毫米,高295毫米。当我试图以英寸为单位指定画布小部件的尺寸时,所有部件都太小了大约三分之一。在

以下是我尝试过的:

from tkinter import *
root = Tk()
root.winfo_screenmmheight()
381
root.winfo_screenmmwidth()
677
root.winfo_screenheight()
1080
root.winfo_screenwidth()
1920
1080/381
2.8346456692913384
1920/677
2.8360413589364843
_*25.4    # 25.4 millimeters per inch 
72.0354505169867
root.tk.call('tk', 'scaling', 1.33)
''
root.winfo_screenmmheight()
286
root.winfo_screenmmwidth()
509

如果我在程序中root.tk.call('tk', 'scaling', 1.33),那么事情就是我想要的大小(或者足够接近)

很明显,问题是tkinter假设我的显示器每英寸有72个像素,而实际上每英寸有96个像素。我可以缩放我的显示器来得到我想要的,但是如果有人用72 PPI显示器运行代码,这看起来会有问题。我看了很多与此相关的帖子,root.tk.call是我发现的唯一有用的东西,但它不可移植。在

是否有一种独立于平台的方法来确定显示器有多少个PPI?还是让应用程序占据屏幕的固定部分?在


Tags: 应用程序部件tkinter尺寸单位rootcall显示器