ToolBox: ファイルを放り込めばそれがプラグインになるデスクトップツールボックス
ToolBox は PySide6 で書いた Windows デスクトップツールボックスだ。普段あちこちに散らばりがちな使い捨ての小ツール——翻訳、ファイル整理、QR コード生成——を一つのウィンドウにまとめ、左のナビゲーションで切り替える。スクリプトを書いていると細かいものが溜まる一方で、一度使ったきりどこに置いたか忘れ、探すより書き直すほうが速いくらいだ。それなら全部一つの GUI に押し込もう、というわけ。
肝は「ファイルを放り込めばそれがプラグインになる」こと。Client.py は起動時に Modules/ ディレクトリをスキャンし、QWidget を継承したクラスはすべて ModuleManager が自動でロードして 1 ページにする。新しいツールを追加するのにメインプログラムをいじる必要も、ルートを登録する必要もない。ディレクトリに .py を放り込んで再起動すればサイドバーに現れる。この自己発見の仕組みがあるからこそ、いくら物を積み上げても崩れずに済む。
常駐モジュールがいくつかある。FileClassifierTool は種類でフィルタし、ファイルの関係ツリーを生成する。プロジェクトのディレクトリ整理に使う。TranslationTool は 腾讯云 TMT につないで、選択語句とホットキーで即翻訳する。認証情報はハードコードせず設定で入力する。YuShengJun はスクレイパーで、URL を渡せば取ってくる。内部では BeautifulSoup、newspaper、yt-dlp を使う。Setting は UI のスタイル、背景、言語を管理する。
programtool/ には、メインプログラムから切り離してあり単体で取り出して動かせるコマンドラインスクリプト群もある。CodeCleaner はコードを整理し、ConverterGUI は PyQt6 を PySide6 に変換し、LibUninstaller はパッケージを一括アンインストールし、QRCGenerator は .qrc を生成する。
技術スタックは Python 3.10+ と PySide6、加えて beautifulsoup4、newspaper3k、yt-dlp、tencentcloud-sdk-python。pip install -r requirements でインストールし、python top/dwgx/Client.py でメインプログラムを起動する。
Modules/noplease/ の下には SystemCore、SystemTool、WiFiHacker といった実験的なコードが積まれているが、デフォルトではロードされず、サイドバーには入らない。個人的な WIP プロジェクトで、製品にするつもりはない。使えば使うほど手に馴染む、ただの自分用ツールボックスだ。GPL v3.0。