py2app plist 应用信息在“关于”中不显示
我正在用py2app创建一个应用程序,一切都运行得很好,除了我无法在菜单的“关于”部分显示我指定的plist中的信息。当我右键点击并选择“获取信息”时,信息是可以显示的,但在应用程序内部却不行。当我点击“关于TextTools”(我应用的名字)时,显示的却是Tcl/Tk的信息。
这是我看到的内容:
这是我的setup.py文件:
"""
This is a setup.py script generated by py2applet
Usage:
python setup.py py2app
"""
from setuptools import setup
APP = ['TextTools.py']
DATA_FILES = ['TextAnalysis.py', 'CustomText.py', 'ResultTree.py']
OPTIONS = {'argv_emulation': True,
'iconfile': '/Users/howe1rp/Desktop/TT_local/TextTools_local/TextTools/man.icns',
'plist': {
'CFBundleName': 'TextTools',
'CFBundleShortVersionString':'0.0.1',
'CFBundleVersion': '0.0.1',
'CFBundleIdentifier':'com.rh.TextTools',
'NSHumanReadableCopyright': '@ My Name 2014'}}
setup(
app=APP,
data_files=DATA_FILES,
py_modules=['TextAnalysis', 'CustomText', 'ResultTree'],
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
2 个回答
0
非常感谢你提供的这个精彩回答。我注意到你在代码中添加了一些额外的菜单栏选项,不仅仅是“关于”面板。如果你只想提供一个自定义的“关于”面板,这里有一个简化版的 Python 3 代码。
from tkinter import *
def about_dialog():
root.tk.call('tk::mac::standardAboutPanel')
root = Tk()
root.createcommand('tkAboutDialog', about_dialog)
root.mainloop()
3
看起来你在你的Python应用中使用了Tkinter。OS X上的Cocoa基础的Aqua Tk会创建一些基本的菜单选项,并且默认会有一个关于
的菜单项。虽然在Tk中对此的文档不是特别详细,但其实可以通过重写默认的Tk tkAboutDialog
命令来覆盖这个默认的Cocoa 关于
菜单。下面是一个非常简单的例子,使用了内置的Aqua Tk standardAboutPanel
。
try:
from tkinter import * # Python 3
except ImportError:
from Tkinter import * # Python 2
def new_file():
# ...
pass
def about_dialog():
root.tk.call('tk::mac::standardAboutPanel')
root = Tk()
win = Toplevel(root)
menubar = Menu(win)
menu_file = Menu(menubar)
# ...
menubar.add_cascade(menu=menu_file, label='File')
# ...
menu_file.add_command(label='New', command=new_file)
# ...
root.createcommand('tkAboutDialog', about_dialog)
win['menu'] = menubar
root.mainloop()
更多信息可以在这里找到。