it's qt!
Post on 24-May-2015
1.307 views
DESCRIPTION
プログラミング生放送勉強会 第16回@名古屋での発表資料。http://pronama.jp/16TRANSCRIPT
![Page 1: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/1.jpg)
It's Qt! プログラミング生放送勉強会
第16回@名古屋
2012/05/19 You&I
![Page 2: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/2.jpg)
ダレ、イッタイ。
H/N: You&I(読み:ユーアンドアイ)
出身: 生まれも育ちも名古屋市
年齢: 30代中盤
本職: 商学部出身の職業プログラマ
言語: C++, C#, VB6.0, 日本語COBOL
日記: http://d.hatena.ne.jp/youandi/
所属: プログラミング生放送 名古屋支部
2
It's Qt!
2012/5/19
![Page 3: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/3.jpg)
Agenda
1. Qt(キュート)とは
2. Qtの環境構築
3. Qt/C++デモ
4. Qt/QMLデモ
5. Qtの今後
6. まとめ
3
It's Qt!
2012/5/19
![Page 4: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/4.jpg)
1. Qt(キュート)とは
1. Qt(キュート)とは
2. Qtの環境構築
3. Qt/C++デモ
4. Qt/QMLデモ
5. Qtの今後
6. まとめ
4
It's Qt!
2012/5/19
![Page 5: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/5.jpg)
1. Qt(キュート)とは(1/10)
アプリケーション・UI 開発フレームワーク
特徴
1. C++ クラスライブラリ
2. クロスプラットフォーム対応
3. 統合開発環境を持つ
4. 商用・OSSのデュアルライセンス
5
It's Qt!
2012/5/19
![Page 6: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/6.jpg)
1. Qt(キュート)とは(2/10)
Qtの歴史(現在のメインバージョンはQt 4.8)
リリース バージョン 備考
1996年 Qt 1.0 X11版及びWindows版
1999年 Qt 2.0 X11版がOSS化
2001年 Qt 3.0 MacOS X版
2005年 Qt 4.0 GPL 2.0(及びそれ以降)ライセンス追加
2007年 Qt 4.5 LGPL 2.1ライセンス追加
2010年 Qt 4.7 Qt/QMLが追加
2012年 Qt 5.0 現在α版。7月以降にリリース予定
6
It's Qt!
2012/5/19
![Page 7: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/7.jpg)
1. Qt(キュート)とは(3/10) Qtの歴史 - その2
1991年にノルウェーのQuasar Technologies社が開発を開始
1994年にTrolltech社に社名変更
2008年6月にフィンランドのNokia社がTrolltech社を買収
2011年3月にフィンランドのDigia社がNokiaのQtの商用ライセンス事業とサービス事業を買収
2011年10月にQt ProjectとしてOSSプロジェクト化。
7
It's Qt!
2012/5/19
![Page 8: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/8.jpg)
1. Qt(キュート)とは(4/10)
Qtの主な機能
ユニットテスト
Widgets(UI) Qt Quick(UI)
マルチメディア WebKit JavaScript
ネットワーク データベース XML
スレッド コンテナ
8
It's Qt!
2012/5/19
![Page 9: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/9.jpg)
1. Qt(キュート)とは(5/10)
クロスプラットフォーム対応(公式サポート)
プラットフォーム 対応OS
デスクトップ Windows, Linux/X11, MacOS X
モバイル Symbian, MeeGo
組み込み
リアルタイムOS WindowsCE, 組み込みLinux
9
It's Qt!
2012/5/19
![Page 10: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/10.jpg)
1. Qt(キュート)とは(6/10)
クロスプラットフォーム対応(公式外)
プラットフォーム 対応OS
デスクトップ FreeBSD, Solaris
モバイル Android, iOS, Blackberry
組み込み
リアルタイムOS T-Kernel, QNX, Integrity, vxWorks
10
It's Qt!
2012/5/19
![Page 11: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/11.jpg)
1. Qt(キュート)とは(7/10)
統合開発環境(1/3)
Qtには「Qt Creator」という統合開発環境が提供されている。
http://qt.nokia.com/products-jp/developer-tools/tools-flipper/cross-platform-ide/
Qt Creator自身がQtを利用して開発されている。
Qtを利用しているので、Qt Creatorもクロスプラットフォーム対応&多言語対応。
11
It's Qt!
2012/5/19
![Page 12: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/12.jpg)
1. Qt(キュート)とは(8/10)
統合開発環境(2/3)
12
It's Qt!
2012/5/19
![Page 13: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/13.jpg)
1. Qt(キュート)とは(9/10) 統合開発環境(3/3)
Qt Creatorの特徴
洗練されたコードエディタ
バージョンコントロール
UI デザイナの統合
プロジェクト&ビルド管理
デスクトップ&モバイルのターゲット
Qt Simulator
Qt Creator以外にも、各種統合開発環境向けのQt Plug-inもあります
13
It's Qt!
2012/5/19
![Page 14: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/14.jpg)
1. Qt(キュート)とは(10/10)
デュアルライセンス
商用ライセンス
Digia社が管理。
日本ではSRA、ISB、日新システムズの3社。
OSSライセンス
現行の最新版では以下のライセンスを選択可能。
GPL 3
LGPL 2.1
商用版との併用や、商用版への乗換には制限あり。
14
It's Qt!
2012/5/19
![Page 15: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/15.jpg)
2. Qtの環境構築
1. Qt(キュート)とは
2. Qtの環境構築
3. Qt/C++デモ
4. Qt/QMLデモ
5. Qtの今後
6. まとめ
15
It's Qt!
2012/5/19
![Page 16: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/16.jpg)
2. Qtの環境構築(1/4)
Qtの環境構築を行う場合、Qtのライブラリ、Qt Creatorと個別にセットアップを行うよりもQt SDKで一括でセットアップを行うと便利。
http://qt.nokia.com/downloads-jp
Qt SDKを利用する事で、インストールしたライブラリ、ツールの更新を行うアプリケーションも提供されるので、メンテナンスも容易である。
16
It's Qt!
2012/5/19
![Page 17: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/17.jpg)
2. Qtの環境構築(2/4)
17
It's Qt!
2012/5/19
![Page 18: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/18.jpg)
2. Qtの環境構築(3/4)
18
It's Qt!
2012/5/19
![Page 19: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/19.jpg)
2. Qtの環境構築(4/4)
コンパイラについて
Windowsならば、VisualC++及びMinGWが利用可能。
Qt SDKからMinGWのインストールも可能。
Qt Creatorはコードをモデルをclangに変更する予定である。
http://labs.qt.nokia.co.jp/2011/11/16/qt-
creator-%E3%81%A8-clang.html
これによりC++11対応が促進される
19
It's Qt!
2012/5/19
![Page 20: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/20.jpg)
3. Qt/C++デモ
1. Qt(キュート)とは
2. Qtの環境構築
3. Qt/C++デモ
4. Qt/QMLデモ
5. Qtの今後
6. まとめ
20
It's Qt!
2012/5/19
![Page 21: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/21.jpg)
3. Qt/C++デモ(1/3)
C++で開発する時のQtの特徴
QObjectを基底クラスとしたクラス構成
QObjectはスマートポインタとなっており、メモリリークする危険性が少ない
SignalとSlotによる操作通知モデル
ビルドでboost::signalコンフリクトする
構文がちょっとキモイ
21
It's Qt!
2012/5/19
![Page 22: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/22.jpg)
3. Qt/C++デモ(2/3)
22
It's Qt!
2012/5/19
![Page 23: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/23.jpg)
3. Qt/C++デモ(3/3)
QtでWebブラウザを作成してみましょう。
Qt をはじめよう! 第6回: 簡単なブラウザを作ってみよう!
http://labs.qt.nokia.co.jp/2010/04/13/simple
browser-with-qtcreator.html
23
It's Qt!
2012/5/19
![Page 24: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/24.jpg)
4. Qt/QMLデモ
1. Qt(キュート)とは
2. Qtの環境構築
3. Qt/C++デモ
4. Qt/QMLデモ
5. Qtの今後
6. まとめ
24
It's Qt!
2012/5/19
![Page 25: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/25.jpg)
4. Qt/QMLデモ(1/3)
デモをする前にQMLについて
Qt/QMLとはQt Meta-object Languageの略称
Qt/QMLでの開発プラットフォームはQt
Quickと呼称されている
http://qt-
project.org/wiki/Qt_Quick_Japanese
25
It's Qt!
2012/5/19
![Page 26: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/26.jpg)
4. Qt/QMLデモ(2/3)
Qt Quickとは以下の要素で構成されます
1. Qt/QML(Qt Meta-Object Language)
JavaScript ベースの直感的なスクリプト言語
2. Qt Creator
QMLの統合開発環境
3. Qt Declarative
C++を使用してQMLアプリケーションを強化
26
It's Qt!
2012/5/19
![Page 27: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/27.jpg)
4. Qt/QMLデモ(3/3)
Qt/QMLを使ってGoogle Mapを表示するプログラムのデモ
@IT > Qt Quickで地図をドラッグさせてみよう
http://www.atmarkit.co.jp/fwcr/rensai2/qt0
3/01.html
27
It's Qt!
2012/5/19
![Page 28: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/28.jpg)
5. Qtの今後
1. Qt(キュート)とは
2. Qtの環境構築
3. Qt/C++デモ
4. Qt/QMLデモ
5. Qtの今後
6. まとめ
28
It's Qt!
2012/5/19
![Page 29: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/29.jpg)
5. Qtの今後(1/2)
今年の夏頃にQt 5.0がリリースされます。
メジャーバージョンの更新
Qt 4.0リリースから7年経過
UIのトレンドの変化
ハードウェアの進化
CPU/GPUのMany Core化
タッチパネルデバイスの普及
Qt 4.0のAPI設計の限界&時代遅れ
29
It's Qt!
2012/5/19
![Page 30: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/30.jpg)
5. Qtの今後(2/2) Qt5の特徴
QMLがUIのメイン言語に
OpenGLを積極的に活用した描画の高速化
グラフィックアーキテクチャの刷新
プラットフォームでのOpenGL (ES)対応が必須条件に
GLSL(OpenGL Shading Language)によるパーティクルやエフェクトの高速描画
V8 JavaScriptエンジン
WebKit2
30
It's Qt!
2012/5/19
![Page 31: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/31.jpg)
6. まとめ
1. Qt(キュート)とは
2. Qtの環境構築
3. Qt/C++デモ
4. Qt/QMLデモ
5. Qtの今後
6. まとめ
31
It's Qt!
2012/5/19
![Page 32: it's Qt!](https://reader034.vdocuments.pub/reader034/viewer/2022052523/556152d9d8b42aa20d8b5051/html5/thumbnails/32.jpg)
6. まとめ
QtはC++において活発に開発が行われているライブラリ・フレームワークの内の1つです。
QtはOSS化されて仕事でも利用し易くなっています。
Qt SDKでお手軽に環境構築ができます。
QtのUI周りのクロスプラットフォーム対応や多言語対応については、他のライブラリよりも抜きん出ていると思います。
32
It's Qt!
2012/5/19