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

ber*_*o.g 8 python tkinter

我一直在研究一个非常简单的python/tkinter脚本(.pyw文件),我想更改它的应用程序图标(在资源管理器窗口和开始/所有程序窗口中显示的'文件'图标,例如 - 不是"文件类型"图标,也不是应用程序图标的主窗口)和任务栏图标(应用程序最小化时显示在任务栏上的图标).是否可以更改它们,还是只有通过.exe 有效安装应用程序时才可行?

这个小应用程序应该只在Windows XP/7机器上运行,它在Python 2.7.3中.

提前致谢!

小智 13

Windows上的另一个选项如下:

在你的python代码中添加以下内容:

import ctypes

myappid = 'mycompany.myproduct.subproduct.version' # arbitrary string
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
Run Code Online (Sandbox Code Playgroud)

  • 链接到这个问题的原始答案对于实现很有用:/sf/ask/108612381/ (5认同)

use*_*652 8

使用

root.iconbitmap(default='ardulan.ico')
Run Code Online (Sandbox Code Playgroud)

但问题是它只能替换不在任务栏上的窗口上的图标.这是因为py文件是从python解释器执行的,所以windows使用他的图标而不是tkinter图标.

你必须'编译'它我想用py2exe,cx_Freeze,py2app ...

http://www.py2exe.org/index.cgi/CustomIcons


lem*_*yen 6

我有一个music_app.py文件和melody.ico文件

使用 Tkinter,您可以使用:

from tkinter import *
root = Tk()
root.title("melody")
root.iconbitmap(r"melody.ico")
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

使用 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_())
Run Code Online (Sandbox Code Playgroud)

之后,您可以转换music_app.py.exe或不转换,结果保持不变:

在此处输入图片说明

希望有帮助!!!