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学習におすすめの教材
Pythonについて、しっかりと基礎から学びたい、実践的なスキルを身につけたいと考えている方向けに、おすすめの学習教材を紹介します。
これらの教材は、実際に僕がPythonの学習に使った教材になっています。
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です!
ベネッセが運営する動画学習サイトUdemyで視聴することができる動画教材です。
(セールの時には¥1,500程度で買えます!)
Pythonは自由度が高くて雑に書いても動きますが、その分コードスタイルがおろそかになりがちです。
正しいコードスタイルを身に着けておかなければ、Pythonプログラマとして活躍することはあり得ません。
この教材は、グローバルスタンダードなコードスタイルを正しく学びながら、アルゴリズムやサーバー構築など幅広くPythonの活用方法を学習することができます。
Pythonの学習で間違えたくない方や、趣味レベルのスキルから一歩抜け出したい方におすすめです。
エキスパートPythonプログラミング改訂2版 Pythonプログラミングのベストプラクティスを伝授
本書は、Pythonを使って仕事をしている開発者が普段どのようなツールやテクニックを用いて仕事をしているのか、また開発者が実際に現場で用いているベストプラクティスについて解説した書籍です。本書を読むことで、先進的なPythonプログラマが日常的に使用している開発ノウハウを学ぶことができます。
こちらの書籍は、様々なユースケースに対するベストプラクティスを学習することができる書籍です。
Python2系と3系の違いについてもよく取り上げられますので、実質どちらのバージョンにも対応しているといえます。
Pythonをうまく使いこなせていない気がする方、初心者の殻を破りたい方におすすめです。