在Mac OS X中设置Tkinter Python应用程序图标

时间:2015-10-14 20:04:42

标签: python macos tkinter

我在Python中创建了一个Tkinter GUI。以下代码段显示了应用程序启动时如何将其图标更改为icon.gif中的图标。这适用于Ubuntu和Windows,但它似乎没有在Mac上做任何事情。如果它有助于我在OS X 10.9.5上使用Tcl 8.5&amp ;;运行Python 2.7.10 Tk 8.5(8.5.18)。如何更改停靠栏中显示的图标?

import Tkinter as TK

class MyClass(object):
    def __init__(self, root):
        pass

if __name__ == '__main__': 
        root = TK.Tk()
        my_app = MyApp(root)
        icon_path = 'some\long\path\to\icon.gif'
        img = TK.PhotoImage(file=icon_path)
        root.tk.call('wm', 'iconphoto', root._w, img)
        root.mainloop()
        root.destroy()

2 个答案:

答案 0 :(得分:3)

我知道这已经过时了,但我在来到这里之前就已经看到了答案,我想我会分享答案,以防万一将来发现这件事,并想知道。

您必须提供.icns格式的图标文件,以便您的应用拥有应用程序图标。 py2app有三种方法可以做到这一点:

  • 命令行参数
  • setup.py
  • 中的选项字典
  • setup.cfg file

在以下所有情况下,将app.icns替换为所需.icns文件的完整路径

CLI参数

$ python setup.py py2app --iconfile app.icns

Setup.py词典

from setuptools import setup
APP = ['YourApp.py']
APP_NAME = "YourApp"
DATA_FILES = []


OPTIONS = {
    'argv_emulation': True,
    'iconfile': 'app.icns',
}

setup(
    name=APP_NAME,
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

Setup.cfg

老实说我不确定这个,我不接触.cfg文件

[py2app]
iconfile="app.icns"

以下是相关的relevant documentation。还可以使用practical example

答案 1 :(得分:1)

如果你的意思是左上角的图标,这可能不起作用,但要为带有图标的Mac创建应用程序,你可以这样做:

要添加图标,您必须制作.icns文件。按照thesethese说明操作。其次,你必须将程序变成一个应用程序。为此,请按照here的说明进行操作,但尚未执行此操作。好的,现在进入setup.py并在选项'iconfile' : 'icon.icns'下添加。立即创建应用程序。只有将.icns映像放在与setup.py相同的文件夹中时,它才有效。这将为应用添加一个图标。