在查看关于app时,py2app plist应用信息不显示

时间:2014-03-08 19:47:50

标签: python tkinter py2app info.plist

我正在尝试使用py2app创建一个应用程序,一切正常,但我无法从指定的plist中获取信息,以便在我从菜单中选择About部分时显示。当我右键单击并选择获取信息时,信息会显示,但不会显示在应用内。当我点击关于TextTools(我的应用程序的名称)时,我显示了Tcl / Tk的信息。

这是我得到的:

enter image description here

这是我的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 :(得分:3)

看起来你在Python应用程序中使用Tkinter。 OS X上基于Cocoa的Aqua Tk创建基本菜单选项,并包含默认的About菜单项。在Tk中没有很好地记录它,但是可以通过覆盖默认的Tk About命令来覆盖默认的Cocoa tkAboutDialog。这是一个非常简单的示例,它使用内置的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()

还有更多信息here

答案 1 :(得分:0)

非常感谢这个伟大的答案。我已经看到你在代码中添加了一些额外的菜单栏条目,而不仅仅是“关于”面板。如果你想要的只是提供一个自定义的“关于”面板,这里是剥离的Python 3版本。

from tkinter import *

def about_dialog():
    root.tk.call('tk::mac::standardAboutPanel')

root = Tk()
root.createcommand('tkAboutDialog', about_dialog)
root.mainloop()