SlideShare a Scribd company logo
Qt5の新機能
  (地味編)
  朝木卓見




          1
Qt5 の現状



• Qt 5.0.0 RC2 2012/12/14 リリース



• 正式リリースは来週!?




                                 2
Qt5というと


• Qt Quick 2
• OpenGL・シェーダー

• などが目立つ



• 今回はそれ以外


                         3
                             3
Qt5の特徴の一つ


• 99%のソースコード互換性

 • pro/ヘッダーの書き換えは含まれず

  • qtbase/bin/fixqt4headers.pl


• Qt5でリコンパイルする価値はある?


                                 4
Qt4とQt5
 Qt4                   Qt5



                     変化無し

                     廃止予定
Qt4 API

                    APIに変化無し
                       Qt5 API
                     内部は変化



                     APIも違う
                      新機能


                                 5
99%のソース互換性


• 変える必要の無かったメソッド

 • 改善された新クラスが存在

  • 旧クラスの利用は非推奨

• APIは変えてないが内部実装が異なる



                       6
変える必要の無かったクラス

• おそらくそのまま使える

 • ソース互換性

 • ビヘイビア(挙動)互換性



• 新クラスがある場合も


                  7
同等の新クラスが存在




• 旧クラスのメンテはいつまで?

• 新クラスへの移行の負荷は?




                   8
内部実装が異なる



• ex.
  • QWidget ...
  • Unicode関連

• 必要な機能が本当に同じかチェックを




                      9
Unicode
• Unicode 6.2 へ更新(Qt4.8は5.0)

• ICUをデフォルトで使用

  • (International Components for Unicode)
  • CJK系コーデックを置き換え

    • UNICODEMAP_JP に非対応

  • QLocale, QDateTime
                   http://qt-project.org/wiki/Qt-5-ICU

                                                         10
その他locale関連

• 削除

 • codecForCString() / setCodecForCString()
 • codecForTr() / setCodecForTr()
• その他

 • QTimeZone
• UTF8以外を使う場合は更に注意を


                                              11
正規表現
 •   従来(Qt4)

     •   QRegExp(Qt独自実装)

 •   Qt5で追加

     •   QRegularExpression(PCRE)

         •   高速化、高機能、問題・制限の解消

         •   メンテナンスコスト低減

     •   今後はこちらの利用を推奨
http://qt-project.org/doc/qt-5.0/qtcore/qregularexpression.html

                                                                  12
JavaScript Backend

• V8 JavaScript エンジン

  • QMLに利用

• QtScriptの置き換えではない

  • publicなQt用APIは用意されていない

• QtWebKitはJavaScriptCoreのまま


                               13
QWidget
• QtGUIから独立したQtWidgetsモジュール

• QWidget系自体の変化は大きくない(?)

• 描画システムがQPAに変更

 • ネイティブダイアログ、フォント、etc.



• 結果として挙動が変化する可能性

                              14
WebKit


• WebKit2へ

 • プロセス分離でUIレスポンス改善

• QtWebKitとQtWebKitWidgetsへ分離

• 機能、速度、メモリ等が改善

• 現状では制限あり


                                15
Qt Quick


• Qt Quick 1 と 2 は別物

 • QML文法以外は全面的に変更



• Qt5ならQt Quick 2を使うべき



                         16
C++11対応

• 新しいシグナル・スロットの文法

  • connect(button, &QPushButton::clicked,
    this, &MyWidget::doSomething);

• ラムダ関数

  • connect(widget, &MyWidget::signal(),
    [](){ qDebug(“lambda”); });

• etc.

                                             17
まとめ
• Qt5を楽しむなら

 • 新機能を積極的に使おう

• 変更点の把握を

 • What's New in Qt 5
 • Porting Guide
 • changes-5.0.0

                        18

More Related Content

PDF
Qt5 の Input Method
PDF
QML上にOpenGLのカスタムエレメントを表示する
PDF
qmake入門
PDF
Qt Creator を拡張する
PDF
Qtではじめるクロスプラットフォームアプリケーション開発 osc2019 Nagoya
PDF
Qt creatorでremote_debug
PDF
QtでC++開発環境構築
PDF
QtとC++でGUIプログラミング
Qt5 の Input Method
QML上にOpenGLのカスタムエレメントを表示する
qmake入門
Qt Creator を拡張する
Qtではじめるクロスプラットフォームアプリケーション開発 osc2019 Nagoya
Qt creatorでremote_debug
QtでC++開発環境構築
QtとC++でGUIプログラミング

What's hot (20)

PDF
griffon plugin を 実際に作ってみよう #jggug
PDF
Kubernetes Meetup Tokyo #23 kubebuilder-v2
PDF
Qtではじめるクロスプラットフォームアプリケーション開発 osc2019 hamanako
PPTX
node-gypを使ったネイティブモジュールの作成
PDF
Make a graph at Qt(used Qwt library)
PDF
KubernetesとOpenShiftの話
PDF
Docker + Checkpoint/Restore
PPTX
コンテナ運用基盤 with OpenShift
 
PDF
分散バージョン管理システムって何なん 20101218
PDF
git-svnつかってみる?
PPTX
QtでHello, World!!
PPTX
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
PPTX
C# 8.0 非同期ストリーム
PPTX
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
PPTX
2018 07-18 git-hub講座
PDF
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
PPTX
Introduction to GraalVM
PDF
groovy 2.1.0 20130118
PDF
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
PPTX
Stylez GitLab勉強会 第1回
griffon plugin を 実際に作ってみよう #jggug
Kubernetes Meetup Tokyo #23 kubebuilder-v2
Qtではじめるクロスプラットフォームアプリケーション開発 osc2019 hamanako
node-gypを使ったネイティブモジュールの作成
Make a graph at Qt(used Qwt library)
KubernetesとOpenShiftの話
Docker + Checkpoint/Restore
コンテナ運用基盤 with OpenShift
 
分散バージョン管理システムって何なん 20101218
git-svnつかってみる?
QtでHello, World!!
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
C# 8.0 非同期ストリーム
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
2018 07-18 git-hub講座
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
Introduction to GraalVM
groovy 2.1.0 20130118
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Stylez GitLab勉強会 第1回
Ad

Viewers also liked (20)

PDF
PyQtではじめるGUIプログラミング
ODP
Qt Widget 入門① -様々なHello World編-
PDF
関西Qt勉強会 ごーるでん 発表資料
PDF
Qt小技(修正版)
PDF
Qt + MSVC でビルドする時に Qt Creator のデバッガを使う方法
PDF
Q planet
PDF
Amebaアプリ QAの歴史(サイバーエージェント関根様)
PDF
How To Redmine !
 
PDF
Touch Android Without Touching
PDF
C++ Template Meta Programming の紹介@社内勉強会
ODP
統一Qtコミュニティー
PDF
ネットワークの負荷分散を手軽に - OSC2015 Hokkaido
PDF
Yocto Project ハンズオン / 参加者用資料
PDF
Build your own embedded linux distributions by yocto project
PDF
ソフトシンセを作りながら学ぶPythonプログラミング
PPTX
カルマンフィルタについて
PDF
Redmine + MySQL 応答性能の調査結果と対策
PDF
Yocto Project ハンズオン プレゼン用資料
PPTX
インフラエンジニアから見たRedmine redmine.tokyo #9
PDF
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
PyQtではじめるGUIプログラミング
Qt Widget 入門① -様々なHello World編-
関西Qt勉強会 ごーるでん 発表資料
Qt小技(修正版)
Qt + MSVC でビルドする時に Qt Creator のデバッガを使う方法
Q planet
Amebaアプリ QAの歴史(サイバーエージェント関根様)
How To Redmine !
 
Touch Android Without Touching
C++ Template Meta Programming の紹介@社内勉強会
統一Qtコミュニティー
ネットワークの負荷分散を手軽に - OSC2015 Hokkaido
Yocto Project ハンズオン / 参加者用資料
Build your own embedded linux distributions by yocto project
ソフトシンセを作りながら学ぶPythonプログラミング
カルマンフィルタについて
Redmine + MySQL 応答性能の調査結果と対策
Yocto Project ハンズオン プレゼン用資料
インフラエンジニアから見たRedmine redmine.tokyo #9
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Ad

Similar to Qt5 の新機能 2012/12/15 (20)

PDF
本番環境で使える実行コード記録機能
PDF
KubeFlow MeetUp #1 Katibよもやま話
PDF
it's Qt!
PDF
fluentd を利用した大規模ウェブサービスのロギング
PDF
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
PPTX
Java で書かれた Android アプリに Kotlin を適用させていく
PDF
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
PDF
Observability, Service Mesh and Microservices
PDF
猫でも分かる Android WebKit
PDF
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
PDF
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
PPTX
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
PDF
CotEditor Script
PPTX
Slurmのジョブスケジューリングと実装
PPTX
Multibranch Pipeline with Docker 入門編
PDF
Gitと出会って人生変わった テックヒルズ2013-03-22
PDF
Azure Kubernetes ServiceとCI/CD pipeline
PDF
新しいOpenShiftのしくみを調べてみた
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
PPTX
8つの操作ではじめるGit
本番環境で使える実行コード記録機能
KubeFlow MeetUp #1 Katibよもやま話
it's Qt!
fluentd を利用した大規模ウェブサービスのロギング
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
Java で書かれた Android アプリに Kotlin を適用させていく
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
Observability, Service Mesh and Microservices
猫でも分かる Android WebKit
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
CotEditor Script
Slurmのジョブスケジューリングと実装
Multibranch Pipeline with Docker 入門編
Gitと出会って人生変わった テックヒルズ2013-03-22
Azure Kubernetes ServiceとCI/CD pipeline
新しいOpenShiftのしくみを調べてみた
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
8つの操作ではじめるGit

Qt5 の新機能 2012/12/15