Python(Anaconda)を使ってプログラムを作ってみる その5 GUIライブラリ選び

2019年1月28日

の続きです。

今作成しようと考えているプログラムは GUI(グラフィックユーザインターフェース)を持つものを想定している。

なので、Pythonで利用できる GUIライブラリパッケージを調べてみた。

ここに記述している内容な私が個人的に調べて考え、試して、感じたことを記述していますので、正確な情報ではないこともあることをふまえてお読みください。

  • pyQt5
  • kivy
  • wxPython
  • tkinter
  • 等々

 

があるようだ。

理想は VisualBasicのようなGUIのデザインをGUIで行えてイベント処理のコードも書けるようなものなのですが...どうやら理想のようなライブラリは無いようだ。(本当はあるのかもしれない。私の調査不足の可能性もあります。)

「pyQt5」は QTデザイナーというGUIで画面のデザインを行えるツール(結果はXLM形式の.uiファイルとして保存する)が用意されている。anacondaをインストールすれば一緒にpyQt5もインストールされているようだ。しかし、pythonで扱えるようにするには.uiファイルをpythonコードに変換するコマンド(pyuic5)を使って.pyファイルにする必要がある。手間がかかる。また、シリアル通信等のGUI以外の機能のPythonコード融合を行う場合に面倒くさそうな気がする。なお、直接PythonコードでGUIの画面構成を記述することも可能なようだ。

「kivy」はもっともトレンドなGUIライブラリのようだ。GUIの画面のデザインは独自の言語で記述した.kvファイルを直接記述して作成するようだ。この.kvファイルをPythonコード内で読み込んで扱うようだ。
なんか習得するのに時間がかかりそうだったので今回は敬遠することにした。別途 kivyパッケージをインストールする必要があるようだ。

「wxPython」「tkinter」は pythonコードで直接GUIの画面構成を記述することになるようだ。x-windowのxlibのような複雑で分かり難くさはないようだ。それほどめんどくさいコードの書き方ではないように思う。javaでGUIプログラム書いたことがあるならば直ぐ慣れるのでは...と思う。wxPythonとtkinterのコードの書き方は似かよっているようにみえる。
wxPythonは別途wxPythonパッケージをインストールする必要があるようだ。
tkinterはPythonに標準で含まれているため特にパッケージをインストールする必要はないようだ。
pyQt5のQTデザイナーみたいなツールは無いようだ。

pyQt5にしようと思ったが今回はPythonに標準でついている「tkinter」を使ってみることにしたのだ。