LoginSignup
2
3

More than 1 year has passed since last update.

【Python】PySimpleGUI 備忘録

Last updated at Posted at 2023-03-03

タスクトレイにアイコンを設置

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 化してしまうので、不要なライブラリをアンインストールしてから実行するとファイルが軽くなる
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3