PythonでGUIソフトを作ってみたい
それで色々ググってみると次の選択肢が…
- PySide
- PyQt
- wxPython
- PyGTK
- PySimpleGUI
PyQtライセンスはGPLだから厳しいです。
でも洗練されてて情報も多いというのが利点。
それなら互換性のあるPySideを使おうと決心!
ライセンスはLGPLだしPyQtと互換性あるし、
そういう訳でPythonでのGUI開発を始めました。
miniconda環境でGUIソフトを作った記録です。
このページの目次
1.minicondaで環境構築+PySide開発の下準備
PySideに必要なものは次の2つ
- miniconda仮想環境
- Python ver2.4以上
まず適当にminiconda環境を作成します。
▼ このようなコマンドで環境作成
1 |
> conda create -n pyside_sample python=3.6 |
▼ y/n と聞かれるので y と入力
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Collecting package metadata (current_repodata.json): done Solving environment: done ==> WARNING: A newer version of conda exists. <== current version: 4.11.0 latest version: 4.13.0 Please update conda by running $ conda update -n base -c defaults conda ## Package Plan ## environment location: C:\Users\***\miniconda3\envs\pyside_sample Proceed ([y]/n)? y ...... done1 # # To activate this environment, use # # $ conda activate pyside_sample # # To deactivate an active environment, use # # $ conda deactivate |
この時点でPythonもインストールされます。
実行コマンドの python=3.6 の部分ですね。
ここは2.4以上ならPySide実行に問題ありません。
2.仮想環境を有効化してPythonバージョン確認
▼ 今作った仮想環境を有効化
1 |
> conda activate pyside_sample |
▼ Pythonバージョン確認
1 2 |
> python --version Python 3.6.13 :: Anaconda, Inc. |
バージョンが表示されればOKです。
ちなみにconda仮想環境を作り直したいなら…
その場合は仮想環境を削除すればOK
▼ このようなコマンド実行
1 |
conda remove -n <環境名> --all |
これで仮想環境を作り直しできます。
3.PySide2をconda経由からインストールする
PySide2をインストールしていきます。
※ 最新はPySide6だけど乗り換え・修正は簡単
単純に次のコマンドを打つだけです。
▼ 仮想環境内でPySide2をインストール
1 |
> conda install -c conda-forge pyside2 |
PySide2本体の消費容量は10MBくらいでした。
※ 仮想環境全体では600MBほど消費
それくらいの空き容量は必要です。
4.ウィンドウを表示するコードを書いてGUI表示
早速ウィンドウ表示するpyコードを書きました。
▼ 次のPythonコード(ファイル名はsample.py)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import sys from PySide2.QtCore import QSize, Qt from PySide2.QtWidgets import QApplication, QMainWindow ## QMainWindowを拡張したMainWindowクラス class MainWindow(QMainWindow): def __init__(self): super().__init__() ## ウィンドウタイトル self.setWindowTitle("My App") ## 初期サイズを設定 self.resize(498,348) ## アプリインスタンス生成 app = QApplication(sys.argv) ## ウィンドウ生成表示 window = MainWindow() window.show() ## イベントループ開始 app.exec_() |
PySide・PyQT・QT全般の特徴ですが…
クラス名は必ず Q から始まる
これはPythonバンドルに限らず共通ですね。
あとはコメントでどういう処理か注釈しました。
それではこのコードでGUIウィンドウを出してみます
▼ Pythonからpyファイルを実行するだけ
1 |
> python sample.py |
▼ ウィンドウ表示できた!
ここまで簡単に表示できるとは驚き。
エラー1つも出ないので逆に拍子抜けしました笑
こういうGUI関連のAPIって設定の段階から難しかったり、チュートリアルにないような意味不明なエラーが出がちです。少なくともPySideではウィンドウ表示なら簡単にできました。
5.UI作成にはQtDesignerを使うのがベスト
GUI作成はコード手打ちでもできます。
でも果てしなく面倒で苦痛な作業です。
だからQtDesignerというツールを使います。
実はWindowsで開発している場合、
仮想環境構築時に既にインストールされてます。
▼ 仮想環境を有効化して次コマンドを打ってみる
1 |
> designer |
▼ ただしPySide6の場合は次のコマンド
1 |
> pyside6-designer |
▼ 普通にQtDesignerが起動できる
詳しい使い方とかは次noteを読めば書いてあります。
これはUI作成に便利なので使った方がいいです。
むしろ使わないと余計な労力ばかりかかります。
恐らくPySideは個人的にこれから使っていく予定です。
発見があったら記録していこうと思います。ではまた