【问题标题】:wxPython macOS Dark Mode support and pyinstallerwxPython macOS 暗模式支持和 pyinstaller
【发布时间】:2020-02-29 04:45:02
【问题描述】:

当运行我的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

【问题讨论】:

  • PyQt5 也会发生这种情况。这个问题可能更多地与 pyinstaller 相关,而不是与 wxPython 相关。

标签: macos wxpython pyinstaller


【解决方案1】:

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

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

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

我刚刚确认这适用于我的 wxPython 应用程序之一Pynsource,使用预发布版wxPython==4.1.0a1.dev4616+ef1edacc - 更多信息请参阅此Phoenix issue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-09
    • 2021-07-21
    • 2021-06-11
    • 1970-01-01
    • 2020-07-08
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多