【发布时间】:2020-09-27 11:31:29
【问题描述】:
我在 Python3/Tkinter 中维护一个应用程序,并添加了我的第一个用户在 MacOS 上打开的问题。 这是 Windows 上 1080p 的主屏幕(Linux 显示类似的结果):
在 2560 x 1600 的 MacOS 上,UI 中的所有内容都以 2 倍大小近似缩放:
原来的代码就是那个:
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 组件或类似的东西硬设置尺寸
还有什么更简单的我可以试试吗?
【问题讨论】:
-
您的应用使用什么字体?您是指定自定义字体还是使用默认字体?我怀疑最简单的解决方案是更改字体的大小。您不必更改任何组件的大小。
-
@BryanOakley 是的,我不只是使用我猜的默认字体来设置字体。似乎我设法改变了字体大小,我会向我的用户提出这个解决方案,看看它是否有效
-
如果您使用默认字体,只需几行代码即可更改它们。
-
@BryanOakley 是的,我向我的用户提出了这个建议,看看它是否能解决问题:``` default_font = Font.nametofont("TkDefaultFont") default_font.configure(size=FONT_SIZE) default_font = Font .nametofont("TkTextFont") default_font.configure(size=FONT_SIZE) default_font = Font.nametofont("TkFixedFont") default_font.configure(size=FONT_SIZE)```
-
你说得对,Bryan,它有效,我将发布我实施的解决方案
标签: python python-3.x macos tkinter scaling