如何在tkinter中获得真正的屏幕尺寸

时间:2015-12-12 19:23:37

标签: python tkinter

我正在编写一个tkinter应用程序,我希望这些小部件在显示屏上以英寸为单位。我有一个插入Mac Mini的24英寸三星显示器。显示器宽约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显示器的人运行代码,这将是错误的。我已经查看了与此相关的SO上的一些帖子,root.tk.call是我发现的唯一有帮助的帖子,但它不可移植。

是否有与平台无关的方法来确定显示器有多少PPI?或者我是否需要让应用程序占用屏幕的固定部分?

0 个答案:

没有答案