如何使用Pyinstaller打包的Kivy Python应用程序在OSX菜单栏中创建菜单项?

时间:2014-11-08 08:45:47

标签: python macos kivy pyinstaller

为了在我的Pyinstaller打包的Kivy Python应用程序中实现原生感,我想在OSX菜单栏中创建菜单项。如果使用PyQt,我可以很容易地实现这一点。但是当我使用Kivy时,似乎我不得不求助于其他方式。

有什么建议吗?我猜它会在PyObjc或AppleScript的范围内。但不确定。

3 个答案:

答案 0 :(得分:2)

  

我想这更像是Pyinstaller的问题,就像Kivy一样。

它既不是:)

PyInstaller只是将python应用程序包装到一个看起来很本机的OS X应用程序包中 由于Kivy无法在OS X中创建菜单栏图标,因此您必须坚持使用PyObjC。

首先,您必须安装Xcode(如果尚未安装)。您可以从App Store或Apple's Developer Center下载。

然后安装PyObjC本身:

pip install pyobjc

在使用PyObjC创建状态栏图标时,已经有一些示例(firstanother)。

还有一个名为rumps的令人敬畏的库,它极大地简化了制作状态栏图标,菜单和操作所需的代码。也许它可以帮助你进行状态栏交互。

答案 1 :(得分:1)

Kivy图形后端提供程序是OpenGl,通过这种方式,Kivy应用程序可以在任何操作系统(IOS,Android,Linux,Windows,...)上以独特的方式运行。 你可以使用kivy ActionBar来显示菜单或创建一个很难的自定义小部件。此linkone也可以帮助您。

答案 2 :(得分:1)

  

如果使用PyQt,我可以很容易地实现这一点。但是当我使用Kivy时,它   好像我不得不求助于其他方式

我不明白你为什么不能使用PyQt方法。创建一个单独的文件,运行您的主Kivy应用程序调用的图标。
和PyQt一样我确信Kivy有一个退出函数可以覆盖并让它在退出应用程序时杀死图标线程。

只有潜在的缺点(我能想到的最重要的一点)是它可能比在PyObjC中实现的速度慢。