wxPython macOS暗模式支持和pyinstaller

时间:2019-11-03 19:15:17

标签: macos wxpython pyinstaller

运行我的wxPython脚本并在命令行上用python3 ./run.py调用时,它使用暗模式(窗口标题栏显示为暗)。使用pyinstaller冻结此脚本并启动内置的应用程序捆绑包,将忽略黑暗模式(标题栏为浅色)。

这是冻结脚本的命令:

pyinstaller run.py --onefile --noconsole

示例来源:

import wx
class App(wx.Frame):
    def __init__(self):
        self.app = wx.App(False)
        wx.Frame.__init__(self, parent=None, title="Window")
        wx.StaticText(self, wx.ID_ANY, label="Hello World!", style=wx.ALIGN_CENTER)
        self.Show()

if __name__ == "__main__":
    myapp = App()
    myapp.app.MainLoop()

我的软件版本:
macOS 10.14.6。
的Python:3.7.3。
wxPython:4.0.7
wxWidgets:3.0.5
pyinstaller:3.5

1 个答案:

答案 0 :(得分:0)

您必须将'NSRequiresAquaSystemAppearance': 'No'添加到PyInstaller .spec文件中:

app = BUNDLE(exe,
    ...
    name=...,
    icon=...,
    info_plist={
        ...
        'NSRequiresAquaSystemAppearance': 'No'
    },
    bundle_identifier=None)

,生成的PyInstaller创建的.app文件应在暗模式下启动。

我刚刚确认使用预发行版wxPython==4.1.0a1.dev4616+ef1edacc可以与我的其中一个wxPython应用Pynsource一起使用-此Phoenix issue中的更多信息。