tcl/tk でアプリケーションアイコンを指定する

 tcl/tk の GUI スクリプトでタスクバーに表示されるアイコンを指定する方法を探しました。

 web でサンプルを探しましたが、殆どが Windows でのやり方でした。同じようにしてもうまく行きません。仕方がないので、マニュアルページを見ました。

 はじめは、Windows のサンプルで使っていた iconbitmap で試しました。しかし、やり方が悪いのか駄目でした。ページを見ていたら、iconpoto というものもあるようです。

wm iconphoto window ?-default? image1 ?image2 …?

https://www.tcl.tk/man/tcl8.5/TkCmd/wm.htm

 ラベルにアイコンを表示する時と同じ様に、イメージを読み込んでから、そのイメージを指定してみました。

image create photo app_ico -file アイコンファイル
wm iconphoto . app_ico

 これでうまくアイコンが表示されました。なお、iconphoto は、Macintosh では何もしないと書いてありました。

 本来、iconphoto はタイトルバーに表示するアイコンの設定のようですが、Raspberry Pi OS のデフォルトのウィンドウマネージャでは、タイトルバーにアイコンは表示されず、タスクバーに表示されました。

 使えそうなので、まともなアイコンを作りました。Icon rainbow からベースとなるアイコンをダウンロードしました。ダウンロードした画像を編集して 32×32 の png 画像を作り、~/Pictures/icons/Radio.png に保存しました。そして、FM_Radio スクリプトの最後に次の内容を追加しました。

# アプリケーションアイコン
image create photo app_ico -file ~/Pictures/icons/Radio.png
wm iconphoto . app_ico

FM_Radio にアイコンを設定

Memo

Posted by sirius