Python

【Python】GUIライブラリの比較【Tkinter, PyQt, Kivy】

投稿日:2021年4月25日 更新日:

Python言語は、機械学習やサーバーサイドのイメージが強いと思うのですが、実はGUIアプリケーションを作成することも可能です。

今回は、Pythonで代表的なGUIツール4つを比較してみました。

Pythonで使えるGUIライブラリ

Tkinter

特徴

Tktinterは、Pythonに標準で用意されたライブラリです。
したがって、pip installなどの準備は必要なく、すぐに使用することができます。

使い勝手も良く、MVCモデルも簡単なアプリならすぐに作ることができます。

しかし、他のGUIライブラリで作るよりも、見た目がリッチではないです。(完全に主観ですが笑)
機能面も他のGUIライブラリよりも劣っているとの意見もありました。

ちなみに、取り組んでいる人口はかなり多いので、ネットにたくさん情報があります。
丁寧な解説記事がいくつもあるので、習得に困ることはないと思います。

向いている人

とりあえずサクッとローコストでGUIアプリを作りたい!と言う方にはおすすめできます。

PyQt

特徴

PyQtは、C++のQtとうGUIツールがPythonようにwrapperされたものになります。

見た目も良く、機能面も十分で、PyQtに取り組んでいる人口は多いです。
書籍も販売されているので、情報に困ることはないでしょう。

ここまで聞いたら、「PyQt最強じゃん!」ってなるのですが、PyQtには致命的なデメリットがあります。
それは、ライセンスです。

PyQtは商用利用する分には、ライセンス料金を支払う必要が発生します。
ビジネス用としてでGUIライブラリを洗濯するならば、その点は覚悟しなければなりません。

向いている人

個人利用でアプリ開発をする人におすすめです。

Kivy

特徴

Kivyは、クロスプラットフォーム対応のGUIアプリを作成することができます。

見た目もよく、機能面も十分で、取り組んでいる人口も多く、なんとオープンライセンスです!
ここまで聞いたら「Kivy最強じゃん!」ってなるのですが、Kivyにもデメリットがあります。

それは、
Kivy言語を習得する必要があることと、日本語の情報が少ないことです。

Kivyの場合は、レイアウトに関してはKivy言語で記述する必要があります。
そのため、新たに一つの言語を習得しなければならずハードルが高いです。
(実際触ってみると、べらぼうに難解なわけでもないですけど、、)

もう一つは、日本語の情報が少ないことです。
英語の情報はたくさんネットに落ちていますが、日本語の情報はTkinterやPyQtと比べると圧倒的に少ないです。
僕も含め、日本語の情報発信者はどんどん増えているので、そのうち解決するとは思ってます。

向いている人

新しい言語の取得に抵抗がない方

まとめ

Python用のGUIライブラリを紹介しました。

Tkinterは、Python標準ライブラリで扱いやすいです。
PyQtは、多機能ですがライセンス料が発生します。
Kivyは、多機能でオープンライセンスですがハードルが高いです。

ここまで読んでいただき、ありがとうございました。

-Python
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

【Kivy】ボタンのフィードバックと重い処理を分ける方法【Python】

Kivyでアプリ開発をしていると、MVCのように処理と表示を分けたくなることがあると思います。その時、ボタンをトリガーにすると、ボタンのフィードバックのタイミングが処理の終了タイミングと同じになってし …

【Kivy】一番簡単なKivyのインストール手順【Python】

Python用のGUIツールとして、海外では知名度が高いのがKivyです。Kivyは、マルチプラットフォーム対応ですので、Pythonでのアプリ開発の選択肢が大きく広がります。 Kivyの環境構築は、 …

【Python】pytestの使い方【テスト駆動開発】

今回は、テスト駆動開発の足掛けとして、pytestの使い方を紹介します。 テスト駆動開発とは、テストのことを第一に考えて実装する開発法のことです。アジャイル開発のように、設計・開発・テストを短く繰り返 …

【Kivy入門】Button押下で動作するアプリの作り方【Python】

Kivyを使った簡単なGUIアプリケーションを作成します。無理のない情報量で、適宜解説をしていますので、Kivyでアプリを作ってみようかな!と考えている方は、参考にしていただけると嬉しいです。(Kiv …

【Python】グローバル変数が更新されない時の対処法

Pythonでグローバル変数を取り扱っているとき、関数内でグローバル変数の値を更新しても、更新が反映されていないということはないでしょうか。 これには、Pythonのお作法が関わっています。この解決法 …

yassanさんのプロフィール写真

yassan
R&Dエンジニア。
新卒で大手の社内SEになったもののスキルアップのためにITベンダーに転職。
技術調査からプログラミングまで幅広くやってます。
趣味はバイクとガジェットと遊戯王カードです。