【问题标题】:How to replace the icon in a Tkinter app?如何替换 Tkinter 应用程序中的图标?
【发布时间】:2022-11-14 07:39:33
【问题描述】:

我在 Windows 10 上使用 Python 3.5.0 并想替换它:

【问题讨论】:

    标签: python-3.x tkinter


    【解决方案1】:

    要更改图标,您应该使用iconbitmapwm_iconbitmap 我的印象是您希望将其更改为的文件必须是 ico 文件。

    import tkinter as tk
    
    root = tk.Tk()
    root.iconbitmap("myIcon.ico")
    

    【讨论】:

    • 如果它在同一目录中,那么只需文件名即可。否则将整个文件路径作为字符串。
    【解决方案2】:

    如果你没有图标.ico您可以使用ImageTk.PhotoImage(ico)wm_iconphoto 文件。

    import tkinter as tk
    from PIL import Image, ImageTk
    
    root = tk.Tk()
    
    ico = Image.open('test.jpg')
    photo = ImageTk.PhotoImage(ico)
    root.wm_iconphoto(False, photo)
    
    root.mainloop()
    

    笔记:

    如果默认为 True,这将应用于所有未来创建的顶层 出色地。图像中的数据在 调用。

    不同操作系统下的详细实现:

    • 在 Windows 上,图像被打包成一个 Windows 图标结构。这个 将覆盖指定给 wm iconbitmap 的 ico,反之亦然。
    • 在 X 上,图像被排列到 _NET_WM_ICON X 属性中,其中 大多数现代窗口管理器都支持。可能存在 wm 图标位图 同时。建议使用不超过2个图标, 首先放置较大的图标。
    • 在 Macintosh 上,这会将 Dock 图标设置为指定的图像。

    See more

    Supported formatsTkVersion 8.6tk.PhotoImage(filepath):

    • PNG
    • GIF
    • PPM/PGM

    因此,可以使用.png 文件将代码简化为:

    import tkinter as tk 
    root = tk.Tk() 
    photo = tk.PhotoImage(file = 'test.png')
    root.wm_iconphoto(False, photo)
    root.mainloop()
    

    【讨论】:

      【解决方案3】:

      tkinter 的输入

      from tkinter import *
      
      app = Tk()
      app.title('Tk')
      app.geometry('')
      
      app.iconbitmap(r'C:UsersUserPycharmProjectsHelloWorldmy.ico')
      app.mainloop()
      

      pyinstaller 的输入

      pyinstaller --onefile -w -F --add-binary "my.ico;." my.py
      

      【讨论】:

        【解决方案4】:

        这是另一种解决方案,它不会强迫您使用 ico 文件:

        from tkinter import *
        
        root = Tk()
        root.geometry("200x200")
        root.iconphoto(False, tk.PhotoImage(file='C:\Users\Pc\Desktop\icon.png'))
        root.mainloop()
        
        

        【讨论】:

          【解决方案5】:

          您不得将 favicon.ico 与您的代码或文件夹放在同一目录中。输入完整的路径名。举些例子:

          from tkinter import *
          root = Tk()
          
          root.iconbitmap(r'c:Python32DLLspy.ico')
          root.mainloop()
          

          这将起作用

          【讨论】:

          • 没有必要这样做,你可以从当前目录上传它,它工作得很好。
          【解决方案6】:
          from tkinter import *
          
          root = Tk()
          
          root.title('how to put icon ?')
          
          root.iconbitmap('C:UsersHPDesktoppy.ico')
             
          root.mainloop()
          

          【讨论】:

            【解决方案7】:

            这是通过 Tcl 命令的另一种方式:

            import tkinter as tk
            
            window=tk.Tk()
            window.tk.call('wm', 'iconphoto', win._w, tk.PhotoImage(file=r"my_icon.png"))
            window.mainloop()
            

            【讨论】:

              猜你喜欢
              • 2016-01-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-06-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-12-25
              相关资源
              最近更新 更多