目次

はじめに

サンプルコード
ツイート
免責事項
表記関係について
底本について

第1章 Qt for Pythonとは

1.1 Qtについて
1.2 PythonのバインディングであるQt for Python
1.3 Qtで作成できるGUIフレームワークについて

第2章 PythonとQt開発環境のセットアップ

2.1 Qt for Pythonの使用要件
2.2 開発環境を整える

第3章 Qt for Pythonの導入

3.1 Anacondaでの仮想環境の構築
3.2 Qt for Pythonのインストール
3.3 PyCharmを使用してPySideのバージョンを表示する。

第4章 画面の作成

4.1 Qt Creatorを使ってみる
4.2 QML記法の基礎
4.3 Qt Creator デザインモードを使ってみる

第5章 PythonでのGUI制御

5.1 Qt for PythonでHello Worldを表示
5.2 PythonとQMLとの連携
5.3 画面のスタイルについて

第6章 GUIアプリケーションの作成

6.1 作成するアプリケーションの画面と構成
6.2 画面の作成
6.3 Pythonにおけるコード作成
6.4 まとめ

はじめに

 本書を手に取って頂けたということは、おそらくPythonもしくはQtに興味を持って頂けた方だと思います。

 Pythonは、 Stack Overflow (スタック・オーバーフロー)の2018年開発者調査結果1で、SwiftやJavaを抜いて“もっとも好きな言語”のランキングで3位に位置づけられているように、とても人気がある言語です。


 「時代は、Pythonだ!Love Python!Viva Python!」


 と、新たに学ぼうとする人も大勢存在する言語だと感じています。筆者もその一人です。

 ただ、意気込んで飛び込んでみたものの、インタープリターやコンソールでの出力しか使用できておらず、ちょっとしたGUIアプリが簡単に開発できたらなぁ、と思ったことがあり、これが本書を執筆するきっかけとなりました。 本書で使用しているQt for Pythonは、最近あらたに追加されたパッケージではあるものの、非常に安定して使えるレベルになっており安心して開発に使用することができます。さらに、これを機にQtに対しても興味を持ってもらえたらと思います。

 本書が皆さんの開発の助けとなり、日々のプログラミングを楽しむきっかけとして活用できれば幸いです。

サンプルコード

 本書のサンプル ソースコードは、次のURLから取得することが可能です。

 ・https://github.com/KazuoASANO/ird_make_gui_in_python_with_qt

ツイート

 できるかぎり内容に万全を期して作成しましたが、ご不審な点や誤りなどお気づきの点がありましたら、Twitterにて、ハッシュタグ「#qtjp」をつけてつぶやいてもらうと、ひょっとしたら筆者が見る場合があります。

免責事項

 本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、筆者はいかなる責任も負いません。

表記関係について

 本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。

底本について

 本書籍は、技術系同人誌即売会「技術書典5」で頒布されたものを底本としています。

1. stackoverflow Developer Survey Results 2018 : https://insights.stackoverflow.com/survey/2018#technology-most-loved-dreaded-and-wanted-languages

第1章 Qt for Pythonとは

Qt for Pythonを知っていますか? 本章では、まずQtについて知り、Qt公式のPythonバインディングとなったQt for Pythonの概要について紹介します。少しずつ、GUIアプリケーションに世界に足を踏み入れてみましょう。

1.1 Qtについて

 Qt (キュート)とは、クロスプラットフォームのアプリケーションフレームワークです。GUI (グラフィカルユーザーインターフェイス)などさまざまな機能を提供してくれるライブラリーを含んだ、C++開発フレームワークです。本書執筆時点のバージョンは、Qt5.11.2です1

 C++で書かれているフレームワークであるものの、Ruby、Python、Perlなどから使用できるように、さまざまな言語バインディングのAPIがオープンソース等で提供されています。

 本書ではPythonで使用できるQt for Pythonについて説明します。

1.2 PythonのバインディングであるQt for Python

 QtのPythonのバインディングといえば、Riverbank Computing社が開発を進めているPyQtや、Qtのフレームワークの開発元であるThe Qt Company2がサポートしているPySideが知られています。

 しかし、PySideは開発元でのライブラリーであるものの、QtのメジャーバージョンであるQt5シリーズのサポートが十分にできておらず、長い間開発が止まったままでした3

 Qt for Pythonは、Qt5シリーズをサポートする最初のリリースとして、2018年6月に発表されました。2018年5月にリリースされたQt5.11のバージョン以降をサポートし、当初の位置づけはTechnical Preview版となっていました。2018年12月に公開されたQt 5.12以降ではTechnical Preview版ではなく、正式リリース版として公開されています。

 このような経緯もあり、Qt5シリーズをサポートしていないPySideは

 ・“PySide”もしくは“PySide1”

 と呼ばれ、Qt for PythonとしてQt5シリーズをサポートしたものを

 ・“PySide2”

 とされています。

 今後、公式にサポートされQtパッケージの一部になるQt for Pythonについて本書を通じて、いち早く使っていきましょう。

1.3 Qtで作成できるGUIフレームワークについて

 Qtを使用したGUIを作成する場合、Qt WidgetsとQt Quickといったふたつの開発手法があります。表1.1がふたつの開発手法の違いです。

表1.1: GUIの開発手法
GUI開発手法 UI作成Tool 記述言語 拡張子
Qt Widgets Qt Designer XML(ただし UI作成Toolが自動生成) .ui
Qt Quick Qt Quick Designer QML .qml

1.3.1 Qt Widgetsについて

 Qt Widgetsは、従来のQtからある開発手法であり、古典的なデスクトップスタイルUI要素のセットのみが提供されているモジュールです4

1.3.2 Qt Quickについて

 Qt Quickは、QML (Qt Meta-Object Language)言語というUIを記述するプログラミング言語を使って、UIを作成できるモジュールです。QML言語はCSSに似たシンタックスを持ち、宣言的なJSON風の構文でUIを記述できます。またロジックの記述にはJavaScriptを使うこともできます。

 Androidで使用されているマテリアルデザインのような、ビジュアルGUIを作成するUI要素のセットが提供されており、簡単にユーザー動作に対してアニメーション化されたUIオブジェクトを作成することができます5

 本書では、このQt Quickを使用したGUIを作成していきます。

第2章 PythonとQt開発環境のセットアップ

この章では、Qt for Pythonを使ってGUIを作成するための開発環境を整えましょう。Qt for Pythonを使用する上で必要なQtでのGUI作成環境の構築方法に加え、Pythonの統合開発環境の構築も紹介します。

2.1 Qt for Pythonの使用要件

 Qt for Pythonを使用するための要件は、Pythonのバージョンを含めて、次のとおりになります1

 ・Windows

  ─Python 3.5以上(Windowsの場合、Python 2系はサポートされていません)

 ・MacOS

  ─Python 3.6 または、2.7

 ・Linux

  ─Python 3.5以上 または、2.7

 この為、本書では全てのプラットフォーム環境で対応できるようにPython 3.6を対象として環境構築をします。

試し読みはここまでです。
この続きは、製品版でお楽しみください。