PyInstaller Tkinter窗口低分辨率在应用程序包中,但不在应用程序中

use*_*500 2 python macos tkinter pyinstaller

我想我错过了一些明显的东西,但我无法弄清楚自己.

我正在使用PyInstaller(运行dev3.3版本)从Python 2.7构建Mac应用程序.该应用程序工作正常,没有问题.一开始,有一个小窗口用于使用Tkinter构建的更新.

在使用PyInstaller(运行oneflie选项)构建应用程序后,我得到两个文件(ls -al结果):

-rwxr-xr-x   1 karoldra  staff  62756614  8 lis 11:08 mac
drwxr-xr-x   3 karoldra  staff       102  8 lis 11:09 mac.app
Run Code Online (Sandbox Code Playgroud)

这是该文件夹的结构:

  • 苹果电脑
  • mac.app
    • 内容
      • 构架
      • 的Info.plist
      • 苹果系统
        • 苹果电脑
      • 资源
        • MyIcon.icns

基本上 - mac.app包包含与主文件夹完全相同的mac文件.

问题是我在Tkinter窗口中获得了不同的分辨率,具体取决于我实际运行的文件.这是Tkiter窗口的示例:

  • 顶部的一个是从mac文件中运行的
  • 底部是从mac.app文件中运行的

在此输入图像描述

你可以看到底部的分辨率由于某种原因而低得多......

有人能告诉我为什么会这样,以及如何解决这个问题?

use*_*500 13

最终我找到了答案...仔细阅读文档 ;)这一行解决了我的问题:

例如,当您使用PyQt5时,您可以将NSHighResolutionCapable设置为True,以使您的应用程序也可以在视网膜屏幕中工作

如果其他人在MacOs上看到这个问题,那么答案是:

我的spec文件缺少info_plist参数指定的高分辨率设置.这是一个例子:

app = BUNDLE(exe,
     name='myscript.app',
     icon=None,
     bundle_identifier=None
     info_plist={
        'NSHighResolutionCapable': 'True'
        },
     )
Run Code Online (Sandbox Code Playgroud)

希望它也会帮助别人!:)