更改应用程序和任务栏图标-Python/Tkinter

更改应用程序和任务栏图标-Python/Tkinter,python,tkinter,Python,Tkinter,我一直在编写一个非常简单的python/tkinter脚本(一个.pyw文件),我想更改它的应用程序图标(例如,浏览器窗口和开始/所有程序窗口中显示的“文件”图标-不是“文件类型”图标,也不是应用程序图标的主窗口)和任务栏图标(应用程序最小化时显示在任务栏上的图标)。是否可以更改它们,或者只有通过.exe有效安装应用程序时才可以更改它们 这个小应用程序应该只在WindowsXP/7机器上运行,它是在Python 2.7.3中运行的 提前感谢!使用 root.iconbitmap(default=

我一直在编写一个非常简单的python/tkinter脚本(一个.pyw文件),我想更改它的应用程序图标(例如,浏览器窗口和开始/所有程序窗口中显示的“文件”图标-不是“文件类型”图标,也不是应用程序图标的主窗口)和任务栏图标(应用程序最小化时显示在任务栏上的图标)。是否可以更改它们,或者只有通过.exe有效安装应用程序时才可以更改它们

这个小应用程序应该只在WindowsXP/7机器上运行,它是在Python 2.7.3中运行的

提前感谢!

使用

root.iconbitmap(default='ardulan.ico')
但问题是,它只替换windows上的图标,而不是任务栏上的图标。这是因为py文件是从python解释器执行的,所以windows使用的是他的图标,而不是tkinter图标

我认为你必须用py2exe、cx\u Freeze、py2app来“编译”它


Windows上的另一个选项是:

import ctypes

myappid = 'mycompany.myproduct.subproduct.version' # arbitrary string
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
在python代码中添加以下内容:

import ctypes

myappid = 'mycompany.myproduct.subproduct.version' # arbitrary string
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)

您可以通过创建python.exe或pythonw.exe文件的新快捷方式(窗口的资源管理器右键单击菜单中提供的选项),然后右键单击快捷方式,选择“属性”,并将目标更改为:

"C:\Path\to\Python.exe" "Absolute\or\relative\path\to\file.py"
然后选择“更改图标”(仍在“属性”窗口中),并选择您的.ico文件。从此快捷方式执行程序将自动将所选图标设置为任务栏和窗口图标


请注意,通过执行set快捷方式,而不是直接单击.py文件,当前工作目录将是python.exe的目录,而不是文件的目录,您也可以在快捷方式的属性窗口、“开始位置”输入字段(在目标下方)或使用python方法
os.getcwd对其进行更改()
查找当前工作目录,并
os.chdir(path)
设置它

使用PyInstaller创建一个单独的文件exe,并使用Inno安装程序构建windows installer包。Inno安装程序将为您完成图标操作。

我有一个
music\u app.py
文件和
melody.ico
文件

使用Tkinter,您可以使用:

from tkinter import *
root = Tk()
root.title("melody")
root.iconbitmap(r"melody.ico")
root.mainloop()
用PyQT

from PyQt4 import QtGui
import sys

app = QtGui.QApplication(sys.argv)
Form = QtGui.QWidget()
Form.setWindowIcon(QtGui.QIcon('melody.ico'))
Form.setWindowTitle('melody')
Form.show()
sys.exit(app.exec_())
之后,您可以将
music\u app.py
转换为
.exe
或不转换,结果保持不变:


希望对您有所帮助!!!

此问题的原始答案链接将有助于实施: