【PySide】メモ:QActionをリストに纏める
メニュー内で使用するactionを追加定義するとき、今まではチュートリアル動画内での教えに則りわざわざQtDesignerを開いてactionを定義して.py(PySide, PySide2)に変換かけてメイン処理の方でtrigger.connectして・・・みたいなことをしていた
最近はPySideの扱いに慣れてきたこともあり、上記のような操作が非常に煩わしくなったので、
actionの定義はQtDesigner側で行わず、メイン処理側で行うようにしようと思った
1. 予めmenuの要素(name, icon, command 等)を辞書で纏めておく
2. 辞書をもとにQActionを動的に生成するメソッドを用意して、actionのリストを作成
3. for in でmenuにaddActionする
みたいな感じ
この実装の良いところは辞書の内容を増やせば登録されるメニューも勝手に増えるので、今までみたいにいちいちaction定義して機能をconnectして・・・みたいな手間がなくなり拡張がとても楽になるところ
QActionGroup を使うことでActionをグルーピングすることもでき、ラジオボタンのような実装も可能になる(便利便利)
これで機能実装のたびにQtDesignerを起動する人生ともおさらば!