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 に設定します。bitmappngjpg ではなく、ico タイプでなければなりません。そうしないと、画像はアイコンとして表示されません。

Tkinter 設定ウィンドウアイコン

上の図は iconbitmapico タイプを使用することを示しています。

png タイプを使うと、ウィンドウに表示されるアイコンは空白になります。

Tkinter は 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 インタープリターへのインターフェースです。call メソッドを使用して、tcl コマンドを実行できます。

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 は、アイコン画像が現在の特定のウィンドウにのみ適用されることを意味し、将来作成される toplevers ウィンドウには適用されない。

True を使用すると、アイコン画像も今後作成されるすべての toplevers 画像に適用されます。

関連記事 - Tkinter Icon

comments powered by Disqus