簡體   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