pythonでは、コードだけの処理を書くことが多いと思います。
もしくは、jupyter notebookでグラフを書きながら、コードを書くことも多いです。
しかし、ユーザーがぽちぽちっと操作ができる、デスクトップアプリを開発したいという方もいるのではないでしょうか?
本記事はこんな方におすすめです。
本記事の内容
- 配布に必要なもの
- PyQt5
- 実装方法
pythonのアプリケーションだと、ウェブのアプリケーションもありますが、デスクトップアプリも全然ありです。
使ってみても、全然不便ではないし、windowsのみならずmac osなどでも動かすことができます。
今回の記事では、次のような何もないデスクトップアプリを起動するところまでを説明します。
配布に必要なもの
配布はexeにする方法があると思いますが、今回は、python embeddable packageを使います。
少し手順が必要ですが、下記リンクで手順を説明しています。
-
参考Windowsでpythonを使う/配布する時に便利!Python embeddable package使い方
続きを見る
このパッケージにPyQt5をインストールします。
pip install PyQt5
この省略したい方は、下記よりダウンロードしてください。
先程のリンクの記事と違う点は、以下のフォルダ構成になっている点と
赤字のapp.batが追加してあり、このバッチで起動するようにして、そのためにsetenv.batの最後に1行追加しています。
基本的にはコードをダウンロードしてもらって、動かしてもらえれば良いですが、バッチファイルの説明も簡単にしておきます。
_internalフォルダ
この_internalフォルダにはpython環境(python-3.8.7フォルダ)とpythonコード(app_codeフォルダ)が入っています。
set_env.batでは、pythonを動かすための環境を設定しています。
SET DP0=%~dp0 SET DP0=%DP0:~0,-1% rem overriding windows user/local environment SET LOCALENV_DIR=%DP0%\_local_env SET TMP=%LOCALENV_DIR%\_tmp SET TEMP=%LOCALENV_DIR%\_tmp SET HOME=%LOCALENV_DIR%\userprofile SET HOMEPATH=%LOCALENV_DIR%\userprofile rem SET USERPROFILE=%LOCALENV_DIR%\userprofile SET LOCALAPPDATA=%LOCALENV_DIR%\localappdata SET APPDATA=%LOCALENV_DIR%\userroaming SET PYTHON_PATH=%DP0%\python-3.8.7 rem overriding default python env vars in order to interfere with any system python installation SET PYTHONHOME= SET PYTHONPATH= SET PYTHONEXECUTABLE=%PYTHON_PATH%\python.exe SET PYTHONWEXECUTABLE=%PYTHON_PATH%\pythonw.exe SET PYTHON_EXECUTABLE=%PYTHON_PATH%\python.exe SET PYTHONW_EXECUTABLE=%PYTHON_PATH%\pythonw.exe SET PYTHON_BIN_PATH=%PYTHON_EXECUTABLE% SET PYTHON_LIB_PATH=%PYTHON_PATH%\Lib\site-packages SET PATH=%PYTHON_PATH%;%PYTHON_PATH%\Scripts;%DP0%\CMake\Bin;%PATH% SET DISTUTILS_USE_SDK=1 SET APP_ROOT=%DP0%\app_code
今回追加したのは、最後の1行です。
app.bat
アプリ起動用のバッチファイルです。
set_env.batを動かしてから、今回のデスクトップアプリのコードである、main_view.pyを実行しています。
@echo off call _internal\setenv.bat "%PYTHON_EXECUTABLE%" "%APP_ROOT%\main_view.py" pause
コードをダウンロードされた方は、app.batを実行してみてください。
何もないデスクトップアプリが表示されます。
PyQt5
PyQtは、pythonでデスクトップアプリを開発するためのライブラリで、WindwosやMacなどのOSでも動かせます。
今回は、python embeddable packageを使うので、Windows配布前提ですが、コードをMacに持っていけば、Macでも動きます。
実装方法
app.batでapp_codeフォルダのmain_view.pyを起動するようにしているので、このmain_view.pyにデスクトップアプリを実装していきます。
ライブラリ読み込み
PyQt5のライブラリを読み込みます。
from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * import sys
メインウィンドウを作成
QMainWindowを継承して、MainWindowを作って、サイズとウィンドウタイトルを設定します。
class MainWindow(QMainWindow): def __init__(self) -> None: super(MainWindow, self).__init__() self.resize(QSize(600, 500)) self.setWindowTitle('app')
アプリの起動部分を作成
先程のMainWindowを起動しているところになります。
ここは、決まり文句なので、そのまま使い回しましょう。
def get_main_app(argv=[]): app = QApplication(argv) win = MainWindow() win.show() return app, win if __name__ == '__main__': app, _win = get_main_app(sys.argv) sys.exit(app.exec_())
これで、空のデスクトップアプリが起動できます。
スマフォアプリにしろ、MicrosoftのVisual Studioでも大抵はプロジェクト作成と同時に空のアプリが作れることを思うと手間ですね。
次からはメニューやボタンなどのパーツを追加していきたいと思います。
-
参考【python】【PyQt5】デスクトップアプリ化して配布 -その2 メニューの追加-
続きを見る