Как установить иконку окна в Tkinter

  1. root.iconbitmap для установки иконки окна
  2. tk.call('wm', 'iconphoto', ) Метод установки иконки окна
  3. root.iconphoto для установки иконки окна

Мы познакомим вас с методами установки иконки окна в Tkinter.

  1. root.iconbitmap для установки иконки окна
  2. root.tk.call() для установки иконки окна
  3. root.iconphoto для установки иконки окна

root.iconbitmap для установки иконки окна

import tkinter as tk
root = tk.Tk()

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

iconbitmap(bitmap) устанавливает иконку виджета окна/кадра в bitmap. bitmap должен быть ico типа, но не png или jpg типа, иначе изображение не будет отображаться как иконка.

Иконка окна набора

На изображении выше видно, когда в ICONBITMAP используется тип ICO.

Если вы используете тип png, то иконка, показанная в окне, будет пустой,

Иконка окна кинтерного набора с помощью png

tk.call('wm', 'iconphoto', ) Метод установки иконки окна

import tkinter as tk
root = tk.Tk()

root.tk.call('wm', 'iconphoto', root._w, tk.PhotoImage(file='/path/to/ico/icon.png')

root.mainloop()

Метод tk.call - это интерфейс Tkinter к интерпретатору tcl. Мы можем запустить команду tcl, используя этот метод call.

Это удобно, когда обёртка Tkinter не может иметь доступ к некоторым возможностям tcl/tk.

wm общается с оконным менеджером.

Нам нужно установить изображение как tk.PhotoImage, но не само изображение, иначе мы получим ошибку _tkinter.TclError.

root.iconphoto для установки иконки окна

Другой метод установки иконки окна - это использование метода root.iconphoto(), который принимает больше типов изображений, как в tk.call('wm', 'iconphoto', ).

import tkinter as tk
root = tk.Tk()

root.iconphoto(False, tk.PhotoImage(file='/path/to/ico/icon.png'))
root.mainloop()

Здесь False означает, что это изображение иконки применимо только к этому конкретному окну, но не к будущим созданным toplevels.

Если используется True, то изображение иконки применяется и ко всем будущим создаваемым toplevels.

Сопутствующая статья - Tkinter Icon

comments powered by Disqus