繁体   English   中英

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

[英]Changing the application and taskbar icon - Python/Tkinter

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

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

提前致谢!

Windows 上的另一个选项如下:

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

import ctypes

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

利用

root.iconbitmap(default='ardulan.ico')

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

我认为你必须用 py2exe、cx_Freeze、py2app 来“编译”它...

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

我有一个music_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_app.py转换为.exe或不转换,结果保持不变:

在此处输入图像描述

希望有帮助!!!

您可以通过创建python.exepythonw.exe文件的新快捷方式来做到这一点,(在 Window 的资源管理器右键单击菜单中可用的选项),然后右键单击快捷方式,选择属性,并将目标更改为:

"C:\Path\to\Python.exe" "Absolute\or\relative\path\to\file.py"

然后选择更改图标(仍在属性窗口中),然后选择您的 .ico 文件。 从此快捷方式执行程序将自动将所选图标设置为任务栏和窗口图标。

请注意,虽然通过执行设置快捷方式,而不是直接单击您的 .py 文件,当前工作目录将是 python.exe 之一,而不是您的文件,您也可以在快捷方式的属性窗口中更改它,在“ start in" 输入字段(在目标下方),或使用 python 方法os.getcwd()查找当前工作目录并os.chdir(path)设置它

使用 PyInstaller 创建单个文件 exe 并使用 Inno Setup 构建 Windows 安装程序包。 Inno Setup 会为你做图标的东西。

添加--icon=iconname.ico
到提示符中的 pyinstaller 命令

例如>> pyinstaller --windowed --add-data "pics/myicon.ico;pics" --add-data "pics/*.png;pics" --icon=pics/myicon.ico -d bootloader myscript.py

这将在 Windows 任务栏上显示您的图标,而不是默认的 python pkg 图标

对于那些在这篇文章中寻找更准确和完整答案的人:

import tkinter as tk
root = tk.Tk()

root.iconbitmap('/path/to/ico/icon.ico')
root.mainloop()

来源参考是delftstack.com

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM