QtDesigner で UI を作る
次は、PySide で単独アプリケーションを作る で作成した Application に、QtDesigner で作成した GUI を
追加していきます。
QtDesigner とは、PySide のレイアウトツールです。
QtDesigner を使用すると、Widget を Window に対して視覚的にわかりやすく並べることができます。
Designer を起動する
PySide2 をインストールすると、PySide2 のインストールフォルダに QtDesigner がインストールされます。
インストールされる場所は、Python3.6 の場合 C 直下ではないので
where python
これで Python のインストール場所を探し、
where で表示された Python##のインストールフォルダ以下の
Python36\Lib\site-packages\PySide2
このフォルダ以下にある
designer.exe を実行します。
UI を作る
QtDesigner を起動したら、「新しいフォーム」画面が表示されます。
その表示された画面内の「MainWindow」を選択します。
このような空の Window が表示されます。
次に、この Window に対して Widget を配置していきます。
Widget を配置する
左側の「ウィジェットボックス」から Window に対して配置したい Widget を Drag&Drop します。
こうすると、ウィンドウに Widget を置くことが出来ます。
レイアウトする
Drag&Drop したままだと、ボタンは任意の場所に配置されただけで
ウィンドウサイズが変更された場合もその場所に置かれたままになります。
それだけだととても微妙な感じになってしまうので「レイアウト」機能を使用して
作成した Window に対して
Widget を配置していきます。
まずは、作成したウィンドウに対してぴったりになるように配置してみます。
その場合は、Window の空いているところで右クリックし、
「レイアウト」からどのようにレイアウトをするかを指定します。
今回は、「垂直に並べる」に変更してみます。
垂直にすると、このようにウィンドウにフィットするようにボタンが配置されます。
垂直にすると、Widget を増やすごとに垂直に新しく追加されるようになります。
とりあえず、QtDesigner 上で Widget を配置できたので
このファイルを保存して Python 側からロードしてみます。
Python 側で .ui ファイルをロードする
.ui ファイルは、python ファイルと同じ階層に保存をした前提とします。
サンプルコードは以下の通り。
ロードする
前回からの大きな変更点として、「作成した ui ファイルを読み込む」行が追加されました。
self.ui = QUiLoader().load(os.path.join(CURRENT_PATH, 'sample_btn_ui.ui'))