Changing the application and taskbar icon - Python/Tkinter

后端 未结 5 2128
眼角桃花
眼角桃花 2020-12-17 17:12

I\'ve been working on a very simple python/tkinter script (a .pyw file) and I\'d like to change it\'s application icon (the \'file\' icon shown at the explorer window and th

相关标签:
5条回答
  • 2020-12-17 17:31

    Create an single file exe using PyInstaller and use Inno Setup to build the windows installer package. Inno Setup will do the icon stuff for you.

    0 讨论(0)
  • 2020-12-17 17:35

    Another option on Windows would be the following:

    To your python code add the following:

    import ctypes
    
    myappid = 'mycompany.myproduct.subproduct.version' # arbitrary string
    ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
    
    0 讨论(0)
  • 2020-12-17 17:35

    You can do that by creating a new shortcut to the python.exe or pythonw.exe file, (option available in Window's explorer right-click menu), then right click the shortcut, select properties, and change target to:

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

    Then select change icon (still in the properties window), and select your .ico file. Executing the program from this shortcut will automaticaly set the selected icon as taskbar and window icon.

    Note though that by executing set shortcut, instead of clicking directly your .py file, the current working directory will be the one of python.exe, and not of your file, you can change that too in the shortcut's properties window, in the "start in" entry field (underneath target), or by using the python methods os.getcwd() to find the current working directory and os.chdir(path) to set it

    0 讨论(0)
  • 2020-12-17 17:58

    Use

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

    But the probleme is that it only replace the icon on the windows not on the taskbar. It's because the py file is executed from python interpreter so windows use his icon and not the tkinter icon.

    You have to 'compile' it i think with py2exe, cx_Freeze, py2app ...

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

    0 讨论(0)
  • 2020-12-17 17:58

    I have a music_app.py file and melody.ico file

    With Tkinter you can use:

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

    With 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_())
    

    After that you can convert music_app.py to .exe or not and the result remain the same:

    Hope it help !!!

    0 讨论(0)
提交回复
热议问题