[英]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 來“編譯”它...
我有一個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.exe或pythonw.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.