首页 > 解决方案 > MacOS 上的 Tkinter Python 3 缩放问题

问题描述

我在 Python3/Tkinter 中维护一个应用程序,并添加了我的第一个用户在 MacOS 上打开的问题。这是 Windows 上 1080p 的主屏幕(Linux 显示类似的结果):

在此处输入图像描述

在 2560 x 1600 的 MacOS 上,UI 中的所有内容都以 2x 大小近似缩放:

在此处输入图像描述

原始代码是那个:

self.window = Tk.Tk()
self.window.resizable(False,False)
if platform.system() == 'Windows' :
   self.window.iconbitmap('bestarcade.ico')
self.window.title(title)

我尝试执行决议:

self.scriptDir = scriptDir
self.window = Tk.Tk()
self.window.geometry("930x950")
self.window.resizable(False,False)

更糟糕的是,MacOS 中的应用程序窗口只是缩短了一点

我尝试缩放:

self.scriptDir = scriptDir
self.window = Tk.Tk()
self.window.tk.call('tk','scaling',0.5)
self.window.resizable(False,False)

它并没有改变标准解决方案的任何内容,好像没有考虑到它

现在根据我的阅读,这似乎是 MacOS 上的 Tkinter 错误,我发现的唯一解决方案需要为每个字体和 UI 组件或类似的东西硬设置尺寸

有什么更简单的我可以尝试的吗?

标签: pythonpython-3.xmacostkinterscaling

解决方案


我有完全一样的问题!!无论我尝试什么,它总是会有点短。

最后,这就是我所做的。看看它是否适合你。

from tkinter import *
window = Tk()
window.title("Whatever you want")

window.focus()

HEIGHT = window.winfo_screenwidth()
WIDTH = window.winfo_screenheight()
RESOL = str(HEIGHT) + "x" + str(WIDTH+7) + "+" + str(-7) + "+" + str(0)
window.geometry(RESOL)

希望这对你有帮助!


推荐阅读