在 OS X 菜单栏中更改 Tkinter 应用程序的标题

Change title of Tkinter application in OS X Menu Bar

当您在 Python 中使用 Tkinter 创建带有 GUI 的应用程序时,您的应用程序的名称在 OS X 的菜单栏中显示为 "Python"。您如何获得它看起来像别的东西?

我的答案是基于埋在 some forums 中间的一个。找到该解决方案有点困难,但我喜欢它,因为它允许您将应用程序作为单个跨平台脚本分发。没有必要通过 py2app 或类似的东西 运行 它,然后会给你留下一个 OS X 特定的包。

无论如何,我在这里分享我的清理版本,以便在它到达那里时给予更多关注。您需要通过 pip 安装 pyobjc 以获取代码中使用的 Foundation 模块。

from sys import platform

# Check if we're on OS X, first.
if platform == 'darwin':
    from Foundation import NSBundle
    bundle = NSBundle.mainBundle()
    if bundle:
        info = bundle.localizedInfoDictionary() or bundle.infoDictionary()
        if info and info['CFBundleName'] == 'Python':
            info['CFBundleName'] = <Your application name here>

可能不是您所需要的,但我很惊讶没有人提到这种简单的、平台独立的方式(在 Win 7 上与 Python 3.x 一起使用):

from tkinter import Tk

root = Tk()
root.title( "Your title here" )  # or root.wm_title

如果您想更改图标:

''' Replace the default "Tk" icon with an Application-specific icon '''
''' (that is located in the same folder as the python source code). '''

import sys
from tkinter import PhotoImage 

program_directory = sys.path[ 0 ]

IconFile = os.path.join( program_directory ) + "\ApplicationIcon.gif" 
IconImage = PhotoImage( file = IconFile ) 

root.tk.call( 'wm', 'iconphoto', root._w, IconImage )

root.mainloop()