it's qt!

32
It's Qt! プログラミング生放送勉強会 16回@名古屋 2012/05/19 You&I

Post on 24-May-2015

1.307 views

Category:

Technology


2 download

DESCRIPTION

プログラミング生放送勉強会 第16回@名古屋での発表資料。http://pronama.jp/16

TRANSCRIPT

Page 1: it's Qt!

It's Qt! プログラミング生放送勉強会

第16回@名古屋

2012/05/19 You&I

Page 2: it's Qt!

ダレ、イッタイ。

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!

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!

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!

1. Qt(キュート)とは(1/10)

アプリケーション・UI 開発フレームワーク

特徴

1. C++ クラスライブラリ

2. クロスプラットフォーム対応

3. 統合開発環境を持つ

4. 商用・OSSのデュアルライセンス

5

It's Qt!

2012/5/19

Page 6: it's Qt!

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!

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!

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!

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!

1. Qt(キュート)とは(6/10)

クロスプラットフォーム対応(公式外)

プラットフォーム 対応OS

デスクトップ FreeBSD, Solaris

モバイル Android, iOS, Blackberry

組み込み

リアルタイムOS T-Kernel, QNX, Integrity, vxWorks

10

It's Qt!

2012/5/19

Page 12: it's Qt!

1. Qt(キュート)とは(8/10)

統合開発環境(2/3)

12

It's Qt!

2012/5/19

Page 13: it's Qt!

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!

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!

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!

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!

2. Qtの環境構築(2/4)

17

It's Qt!

2012/5/19

Page 18: it's Qt!

2. Qtの環境構築(3/4)

18

It's Qt!

2012/5/19

Page 19: it's Qt!

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!

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!

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!

3. Qt/C++デモ(2/3)

22

It's Qt!

2012/5/19

Page 24: it's Qt!

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!

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!

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!

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!

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!

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!

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!

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!

6. まとめ

QtはC++において活発に開発が行われているライブラリ・フレームワークの内の1つです。

QtはOSS化されて仕事でも利用し易くなっています。

Qt SDKでお手軽に環境構築ができます。

QtのUI周りのクロスプラットフォーム対応や多言語対応については、他のライブラリよりも抜きん出ていると思います。

32

It's Qt!

2012/5/19