前から興味のあったデスクトップアプリ開発のため、Qtの学習をしてみたいと思います。言語は最近はじめたPython。食わず嫌いだったんだけど、思い立って入門Python3っていう入門書を買って読んでみたら、わりと初心者に優しかったんですね。今だと勢いもあるし、ここはひとつPython / Qt / PyQtでいってみたいと思います。
でもいままでGUIアプリを書いたことがないわたし、何から始めたらいいか全然検討もつきません。調べた結果をこの記事にまとめました。情報公開してくださってる方に感謝。
いっぱい勉強のネタがあるなぁ… がんばろっ! (^O^)/
これから使うPythonについて
PythonはAnaconda 4.3.0でインストールし、Python 3.6を使用する予定です。Anacondaというのは、Pythonの実行環境にサードパーティのライブラリや、開発環境を全部入りにしたインストーラです。
Qtってなに?
Qtはグラフィックスを扱うライブラリ群です。マルチプラットフォームで、一回書いたプログラムをUnix/Linux/Windows/Macといろんなプラットフォームで動かすことができるようになる、夢のようなライブラリ群。 夢かも知れない…
ほかにもwxPython、TkInter、Kivyなどのグラフィックを扱うライブラリがありますが、それらはまた別の機会に。
開発者
現在はThe Qt Companyで開発されているそうです。私が知っているのはTrollTechという会社が開発していたってことくらい。その頃に一回Qtの本買った気がします。読んだはずだけど、忘れちゃいました。 ( > <) たしかUnixやLinuxのX Windowのウィンドウマネージャのプラットフォームとして使われていたと思います。
ライセンス
Qtのライセンスはオープンソースですが、ライセンスが意外と厳しくLGPLv3、場合によってGPL、商用ライセンスとマルチライセンス形態で、商売するなら買わないといけません。
商用ライセンスは結構お高いんでしょう? って言っても安くはなりません。個人が使うのであれば、はじめは月$99くらい、その後は大体月$300くらい? 高いです! 永続ライセンスはなんとお見積! ご連絡ください! となっています。なお、販売代理店が日本にもありますので、商売になりそうなら相談したらいいかもしれません。
わたしの場合、まずは趣味だしGPLで使うことにします…
PythonからはPyQtやPySideというPythonのライブラリからQtを呼び出して使うことになります。PyQtとPySideの違いはライセンスのようですが、使えるPythonのバージョンなどの関係から今回はPyQtを使うことにします。
入手方法
Download Qt for Application Developmentで、”Get your open source package”をクリックするとダウンロードページに移動します。自分の環境にあったインストーラをダウンロードすることもできるし、”View All Download”から好きなインストーラをダウンロードすることもできます。
AnacondaにはQtが含まれているので、ダウンロードする必要はありません
バージョン
2017年2月3日現在の最新版は公式サイトで配布されているものは Qt 5.8.0 です。
Anaconda (4.3.0) では Qt 5.6.2 です。
参考情報
インターネットサイト
Qt Examples And Tutorials | Qt 5.8 (2017-2-3 最新) (英語)
Qt公式のチュートリアルとサンプル集です。QtにバンドルされているQt CreatorというIDEを使った説明がたくさん掲載されています。うちのAnaconda環境には入ってない、と思ったら今ではQtDesignerという名前で、うちの環境にも入っていそうです。Main/ja - Qt Wiki (2017-2-3 最新)
The Qt Company社の公式Wiki。結構なドキュメントが揃っています。QtでGUIアプリーション作成入門(1) - 津駄の日々 (2013-10-28)
Qt5の入門編。想定読者はまさしくわたし。ただ、C++バインディングなんですね。残念。QtDesigner 使い方入門 (2014-2-??)
Qt 5.2.0に付属のQtDesignerの使い方。Qtプログラミング入門 | densan-labs.net (2007-08-29)
Qt4.0の入門資料です。Qt5をやりたいんだけど、そのまま使えるんだろうか…わかりません。PDFにもなっていて読みやすそうなので、使ってみたいです。Qtのバージョンの差異が小さいなら読んでみたいと思います。
書籍
- Qt QuickではじめるクロスプラットフォームUIプログラミング (2013-8-2)
日本語のQt5の書籍はこれだけの模様。QtQuick、またはQMLと呼ばれるQtを操作する言語の解説が主な内容。アマゾンではQt QuickではじめるクロスプラットフォームUIプログラミング (アスキー書籍) | 折戸 孝行 | 工学 | Kindleストア | Amazonとして販売されています。
ほかにもQtの書籍はありましたが、Qt4が対象です。なお洋書もあるようです。
- Qt QuickではじめるクロスプラットフォームUIプログラミング (2013-8-2)
PyQtってなに?
PyQtはPythonからQtの機能を使うためのPythonライブラリです。これとは別にPySideというライブラリもあります。違いはやはりライセンス。PyQtのライセンスが厳しく、これを嫌った人たちがオルタネイティブとしてPySideを開発しているそうです。
開発者
Riverbankという会社が開発しています。
ライセンス
GPLv3か商用のデュアルライセンスで、LGPLを認めていません。Qtより厳しいです。商用の方は£350 (GBP)、今の為替レートで約5万円ほど。まぁQtに比べたらお安いですね。なんだか高額商品の販売商法のような気がしないでもありません。いえ、決してそんなことはなく。
なお厳しいライセンスは飯を食っていくため! と表明しています。こういう開き直り正直さっていいですね。
入手方法
Riverbank | Software | PyQt | PyQt5 Downloadからダウンロードします。
Anacondaをインストールするとすでに入っているので、Anacondaを使う人はだいぶ楽できますね。
バージョン
2017年2月3日時点の最新版はPyQt5 5.7.1です。
Anaconda (4.3.0)ではPyQt 5.6.0です。少し古いですね。Anacondaでアップデートできそうですが、いつやろうか悩みます。
参考情報
インターネット
PyQt5 Reference Guide — PyQt 5.7.1 Reference Guide (????-??-??)
公式のリファレンスガイド。迷ったら迷わずここです。PyQtではじめるGUIプログラミング (2011-8-27)
SlideShareでのプレゼン資料。概念図などがはっきり書かれており、わかりやすそう。基本的な用語も解説があるし、これを一番に読んで見る。PyQt5入門 PythonでGUI作成 - yu00’s blog (2015-09-01)
こちらもわかりやすそう。第ニ候補にしよう。PyQt5 tutorial - learn GUI programming with PyQt5 (????-??-??)
上記2. PyQt5入門 PythonでGUI作成 - yu00’s blogのサイトに紹介のあったチュートリアル中心のサイト。なんとwxPython、Tkinter、PyGTKについてのチュートリアルまであった。すごいです。英語じゃここから始めてもいいかもしれない。今のところ第三候補。PythonのPyQtによるクロスプラットフォームGUIアプリ作成入門 - MyEnigma (2016-01-24)
PyQtでぐぐると一番トップに出てくるサイト。なかなかわかりやすそうです。ただ、macなもよう。私はWindows 10なんですが、大丈夫かな…PyQt5でさくっとGUIを作る - mfumiの日記 (2014-11-12)
PyQt5でのサンプルコードが沢山掲載されている記事。面白そうなのでわかってきたら読みたい記事。
書籍
あまり日本語でのPyQtに関する書籍はなさそう。
次は何しようかな…
まずは環境整えます。そのあとPyQtについて本格的に学習していきたいと思います。今のAnaconda環境、なんだか変なので再インストールして導入する予定です。
参考サイト
- 5 Top Python GUI Frameworks for 2015 - Dice Insights (2016-11-22)
この記事、タイトルがいい! 毎年使いまわしできる! こんなネタの組み方、思いつかなかった… なんだか今年の漢字っぽくってちょっとうけました。で、2017年のがあるかと思ってぐぐったら…Web Frameworkだったよ… はやとちり…
気づいたこと、不具合、ご意見など、コメント待ってます!