为了在我的Pyinstaller打包的Kivy Python应用程序中实现原生感,我想在OSX菜单栏中创建菜单项。如果使用PyQt,我可以很容易地实现这一点。但是当我使用Kivy时,似乎我不得不求助于其他方式。
有什么建议吗?我猜它会在PyObjc或AppleScript的范围内。但不确定。
答案 0 :(得分:2)
我想这更像是Pyinstaller的问题,就像Kivy一样。
它既不是:)
PyInstaller只是将python应用程序包装到一个看起来很本机的OS X应用程序包中 由于Kivy无法在OS X中创建菜单栏图标,因此您必须坚持使用PyObjC。
首先,您必须安装Xcode(如果尚未安装)。您可以从App Store或Apple's Developer Center下载。
然后安装PyObjC本身:
pip install pyobjc
在使用PyObjC创建状态栏图标时,已经有一些示例(first,another)。
还有一个名为rumps
的令人敬畏的库,它极大地简化了制作状态栏图标,菜单和操作所需的代码。也许它可以帮助你进行状态栏交互。
答案 1 :(得分:1)
Kivy图形后端提供程序是OpenGl,通过这种方式,Kivy应用程序可以在任何操作系统(IOS,Android,Linux,Windows,...)上以独特的方式运行。 你可以使用kivy ActionBar来显示菜单或创建一个很难的自定义小部件。此link此one也可以帮助您。
答案 2 :(得分:1)
如果使用PyQt,我可以很容易地实现这一点。但是当我使用Kivy时,它 好像我不得不求助于其他方式
我不明白你为什么不能使用PyQt方法。创建一个单独的文件,运行您的主Kivy应用程序调用的图标。
和PyQt一样我确信Kivy有一个退出函数可以覆盖并让它在退出应用程序时杀死图标线程。
只有潜在的缺点(我能想到的最重要的一点)是它可能比在PyObjC中实现的速度慢。