PySide2とPyCharmでGUIツールを作ってみる


■ はじめに

Youtube で Cygames さんが期間限定で公開していた Python の動画を見てちょっとやってみたくなって触ってみました。
ひとまずは触りだけ。

■ 開発環境

  • PyCharm Professional 2021.2.2
  • PySide2 5.15.2
  • Python 3.7

■ PySide2 をインストール

  • 1. PyCharm 上で Python3 に対応したプロジェクトを作ります。(ここでは PySide2Proj で作ったものとする)
  • 2. 「メニューバー」>「ファイル(F)」> 「設定(T) Ctrl+Alt+S」> 「プロジェクト: PySide2Proj」>「Python インタープリター」>「+マーク」を選択。
  • 3. PySide2 と入力しパッケージをインストール。

■ 外部ツール設定

PySide2 を使いやすいように外部ツール設定をしておきます。

「メニューバー」>「ファイル(F)」> 「設定(T) Ctrl+Alt+S」> 「ツール」>「外部ツール」>「+マーク」を選択。

QTdesigner:Qt Designer を開く

  • プログラム:[PySide2Projのフルパス]\venv\Scripts\pyside2-designer.exe
  • 引数:空欄でOK($FileDir$\$FileName$ のように入れておくとuiファイルを直接開くことが出来ます。)
  • 引数:$ProjectFileDir$

PyUIC:uiファイルをpyファイルへ変換する

  • プログラム:[PySide2Projのフルパス]\venv\Scripts\pyside2-uic.exe
  • 引数:-o $FileDir$/$FileNameWithoutExtension$.py $FilePath$
  • 引数:$ProjectFileDir$

■ Qt Designer でベースウィンドウを作成

  • 1. 「メニューバー」>「ツール(T)」> 「External tools」> 「QTdesigner」を選択で Qt Designer が開きます。

  • 2. 「Main Window」を選択し「作成(R)」を選択。
  • 3. 「オブジェクトインスペクタ」>「MainWindowオブジェクト」を選択状態にしておく。
  • 4. 「プロパティエディタ」>「QWidget」>「geometry」を「[(0, 0), 800 x 600]」にし、ウィンドウサイズを 800x600 に設定。
  • 5. 「ファイル(F)」>「保存(S) Ctrl+S」、ファイル名を「MainWindow.ui」にし、「保存(S)」。
  • 6. Qt Designer を閉じておきます。(PyCharm の停止ボタンで閉じると正常終了扱いにならないので注意)

■ ui ファイルを py ファイルへ変換する

  • 1. PyCharm 上の「プロジェクト」>「PySide2Proj」>「MainWindow.ui」を右クリック。
  • 2. 「External tools」>「PyUIC」を選択。
  • 3. MainWindow.ui と同一階層に MainWindow.py が出来ていれば成功です。

■ Pythonスクリプトからウィンドウを実行する

main.py に下記のように記載します。

main.py
import sys
from PySide2.QtWidgets import QApplication, QMainWindow
from MainWindow import Ui_MainWindow


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = QMainWindow()
    ui_window = Ui_MainWindow()
    ui_window.setupUi(main_window)
    main_window.show()
    sys.exit(app.exec_())

「実行'main'(U) Shift+F10」をして下記ウィンドウが出れば成功です。

まとめ

UI画面を作っていく環境が整いました。
今回は以上になります。

気が向けば作っているGUIツールの情報も公開していこうと思います。

■ 参考資料