在 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()
当您在 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()