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

时间:2016-11-08 10:33:26

标签: python macos tkinter pyinstaller

我想我错过了一些显而易见的东西,但我无法弄清楚自己。

我正在使用PyInstaller(运行dev3.3版本)从Python 2.7构建Mac App。该应用程序工作正常,没有问题。一开始,有一个小窗口用于使用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

以下是该文件夹的结构:

  • MAC
  • mac.app
    • 目录
      • 框架
      • 的Info.plist
      • Mac系统
        • mac
      • 资源
        • MyIcon.icns

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

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

  • 最上面的一个是从mac文件
  • 运行的
  • 底部的一个是从mac.app文件
  • 运行的

enter image description here

正如你所看到的那样,由于某种原因,底部的分辨率要低得多......

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

1 个答案:

答案 0 :(得分:9)

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

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

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

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

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

希望它能帮助别人!!! :)