タスクトレイにアイコンを設置
pystray を使用することで実現可能
- install
pip install pystray
- 参考:https://blog2.k05.biz/2021/09/python-pystray.html
-
sg.Window
と併用するときはマルチスレッドにする必要あり - 英語だと System tray
- Windows で「隠れているインジケータを表示します」としか表示されないので、このワードにたどり着くまでに苦労した
■ 結論
- タスクトレイにだけ出現するアプリケーションにしたかったが、そういう使い方じゃない
- バックグラウンドで走っているアプリを配置しておくところで、実際に使用するときはタスクバーにアイコンが出る(LINE や Discord などもそう)
- 今回は常時画面を表示させたかったのでタスクトレイには置かない
タスクバーにアイコンを表示しない
-
sg.Window
の引数にno_titlebar=True, grab_anywhere=True
を指定することで可能 - しかしこれをするとウィンドウ上部の掴む場所がなくなるのでよくない
タスクバーにもアイコンを反映
sg.Windows
の引数に icon=icon.ico
を含めないといけない
EXE 化
Nuitka を使用する
- install
pip install nuitka
- EXE 化
nuitka app.py --standalone --onefile --enable-plugin=tk-inter --disable-console --windows-icon-from-ico=icon.ico
-
軽量化(追記)
仮想環境内に使用していないライブラリが含まれていると、それも使えるようにする前提で nuitka が EXE 化してしまうので、不要なライブラリをアンインストールしてから実行するとファイルが軽くなる