Monthly Archives: April

Qt World Summit 2016 の動画を公開しました!

Published Friday April 28th, 2017 | Leave a comment
Posted in イベント | Tags: , ,

この記事は The Qt Blog の Missed the Qt World Summit 2016 sessions? を翻訳したものです。 執筆: Iris Yamashita, 2017年2月7日 Qt World Summit 2016 のセッションの動画 を公開いたしました。昨年の #QtWS16 のライブ映像をご覧になった方もそうでない方も、Qt のエキスパートたちによる未来の技術や HMI 戦略、プロジェクトマネジメントやソフトウェアエンジニアに向けたユーザー体験のデザインに関する様々なセッションを是非ご覧ください。 弊社のエンジニアをはじめ、様々な業界のリーダーやパートナーによって行われた数々のスピーチを体験する絶好の機会です。 おすすめのカテゴリー: Keynotes – #QtWS16 がどのようにスタートしたかを是非ご覧ください Deep tech and UI/UX – Qt のエキスパートから様々なノウハウを学びましょう Build with Qt – 様々な業界における Qt の活躍を学びましょう では、飲み物を用意して、椅子に座りながら ショー をお楽しみください! #QtWS16 での Ubuntu、Tableau、LG による […]

Read More

Qt オンラインインストーラーのメンテナンスツールの更新のお願い

Published Wednesday April 26th, 2017 | Leave a comment
Posted in Qt | Tags: ,

この記事は The Qt Blog の Please update your Qt Online Installer’s Maintenance Tool を翻訳したものです。 執筆: Katja Marttila, 2017年4月20日 この度、Qt のオンラインインストール用のサーバーのドメインを変更することにいたしました。2.0.3 以前のメンテナンスツールをお使いの場合は最新の 2.0.5 にアップデートしてください。 「Update Components」の実行でこれは完了し、Qt 自体のインストールへの影響はありません。このアップデートは2017年5月5日までに行ってください。それ以降、古いメンテナンスツールをお使いの方はエラーが発生します。 2.0.4 をお使いの方は引き続きそのバージョンをお使いいただくことが可能です。

Read More

【Qtデバイスの高速起動】Part4: ハードウェアについて

Published Wednesday April 26th, 2017 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の Fast-Booting Qt Devices, Part 4: Hardware Matters を翻訳したものです。 執筆: Risto Avila, 2016年8月30日 みなさんこんにちは! これまで Qt デバイスの高速起動に関して 1.5 秒でブートします、Qt アプリケーションの最適化、システム全体の最適化 の3つ記事を書きました。今回はハードウェアの選択、特に同じ CPU が載っていてもアーキテクチャの違いによって高速起動に与える影響が大きいことを説明したいと思います。この比較のために、同じ NXP i.MX6 Quadcore CPU を搭載した2つのボードを用意しました。1つはソフトウェア開発向けのボードで、もう片方は製品にも使えるようなシステム・オン・モジュールのボードです。 それではちょっとしたバトルを開催しましょう! 左側は NXP SABRE i.MX6 Quad Development Board です: NXP i.MX 6 Quadcore プロセッサ、1GHz で動作 1GB DDR3 RAM 8GB eMMC 右側は Toradex Apalis […]

Read More

【Qtデバイスの高速起動】Part3: システムイメージの最適化

Published Tuesday April 25th, 2017 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の Fast-Booting Qt Devices, Part 3: Optimizing System Image を翻訳したものです。 執筆: Risto Avila, 2016年5月25日 高速起動に関するブログ記事の3つ目です。最初の記事 ではクラスタのデモ が 1.56 秒で起動し、2つ目の記事 では Qt アプリケーションの最適化 について紹介しました。今回はブートローダーと NNXP i.MX6 SABRE ボード用の Linux カーネルの最適化に専念しましょう。 起動時間の高速化に着手する前に測った起動時間は 22.8 秒でした。その後ゴールを2秒以内に定めました。これに向けて様々な作業を行います。最初は一番わかりやすい rootfs からはじめました。既存の rootfs は今回のデモには必要のないものが数多く含まれていました。これにより、元々 500 MB だったサイズが 24 MB まで減らすことができました。buildroot を用いてターゲットデバイス向けの最小限の rootfs とクロスコンパイル用のツールチェインを用意しました。 この小さな rootfs で測定した起動時間は 15.6 秒でした。この中でカーネルの起動が 6 […]

Read More

【Qtデバイスの高速起動】Part2: Qt アプリケーションの最適化

Published Tuesday April 25th, 2017 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の Fast-Booting Qt Devices, Part 2: Optimizing Qt Application を翻訳したものです。 執筆: Risto Avila, 2016年4月27日 先日の記事 では i.MX6 ボード上で2秒で起動する高速起動デモの紹介をしました。今回の記事では Qt QML のクラスタアプリケーションをどのように最適化したのかをカバーしたいと思います。 Qt World Summit 2015 で展示した当初のデモは PC 環境で設計され、起動時間についてはそもそも考慮されていませんでした。Loader を利用して UI のパーツを非同期にロードするような設計にはなっていましたが、起動シーケンスについてはまったく間が得られていませんでした。最適化の初めの一歩として、ユースケースについて考える必要がありました。「はじめにユーザーに見てもらいたいものはなにか?」を検討した結果、一番初めは計器類の外枠を表示し、その後で画面に表示する他のものをロードするということにしました。 以下の画像で赤いオーバーレイの部分がアプリケーションの起動直後にユーザーが目にするエリアになります。 アプリケーションのソースコードを見てみると、ダッシュボードは複数のマスク画像で、その中のいくつかは画面と同じ大きさでした。そのためこれをすべて結合し、1つのフルスクリーンの画像にし、UI の最前面に表示させるようにしました。 アプリケーションの起動を一秒でも速くするために、アプリケーションの内部構造も色々見直しました。ダッシュボードのフレームを1つの QML ファイルにまとめ、一番最初にロードするようにしました。この外枠がロードされ描画されたあとで、UI の他の部分をロードするためのローダーを有効にするようにしました。 実際にどういった処理に時間がかかっているかを調べるために、Qt Creator の QML プロファイラも活用しました。元々このデモではデスクトップアプリ向けに開発されていた Qt Quick Controls を利用していて、これによって余計に時間がかかっていた部分がありました。(余談ですが、Qt Quick Controls は組み込み向けに 設計が見直されたものが […]

Read More

【Qtデバイスの高速起動】Part1: 車載インストルメントクラスタ

Published Tuesday April 25th, 2017 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の Fast-Booting Qt Devices, Part 1: Automotive Instrument Cluster を翻訳したものです。 執筆: Risto Avila, 2016年4月20日 組み込み機器を開発する場合にユーザー体験として重要となるものの一つに、システムの起動時間ががります。自動車をはじめとした多くの業界において、起動時間は必須条件という場合もあります。 これに関して「Qt で開発した端末でどのくらい高速に起動ができますか?」「システムと Qt アプリケーションを2秒以内に起動するのは可能ですか?」「Qt アプリケーションを起動するのに最低限必要なシステムは何秒で起動できますか?」といった問い合わせを数多くいただいてきました。 これらの質問に対する唯一の回答は残念ながら存在しません。その代わりに、Qt で作る組み込みシステムの最適化に関して3つのブログ記事を書くことにしました。最初の記事では車載のインストルメントクラスタを例に、私たちが開発した高速起動デモのベンチマーク結果を紹介します。次の記事では実際に「どのように」Qt や Qt Quick アプリケーションを最適化したのかを紹介し、最後の記事ではハードウェアに関わる起動時間の短縮について書く予定です。 車載インストルメントクラスタのデモ 自動車業界では、起動時間に関する明確な要求が存在します。たとえば、デジタルインストルメントクラスタでは、できる限り高速に起動することが重要です。車の起動とほぼ同時にインストルメントクラスタが起動し、適切に動作する必要があります。これはユーザー体験としてだけではなく、安全性に関する要件という側面もあります。と同時に、計器類の表示のデジタル化はどんどん進み、3D 表示のようなリッチな表現に変わっていきます。プラットフォームやフレームワークといったソフトウェアの設計的にここは注意深く行う必要があります。Qt ではこのようなインストルメントクラスタの高速起動が可能で、Embedded world 2016 instrument cluster demo で最適化されたデモを実際に作成しました。 以下の動画で結果をご覧ください。 最適化以前の起動時間は23秒でしたが、様々な最適化の結果、起動直後のスクリーンの表示までの時間を 1.5 秒に短縮することに成功しました。この時間はシステムに必要とされるものに依存します。 起動時間の分析 この動画をもとに解析し数値化した結果が以下の図になります。 コールドブートで最初の画面の描画が表示されるまでにかかった時間は 1500 ms です。ご覧のように、多くの時間は Qt アプリ以外の部分に費やされています。その部分に関してはハードウェア的に高速に起動するものを選択する事でさらに短縮できるのではないかと思っています。ボードはメモリとメモリバスが高速である必要があります。u-boot はのさらなる最適化や、別のブートローダーを導入することでもう少し高速化できる可能性がありますが、特に Qt Quick […]

Read More

QPainter の OpenGL Core Profile Context のサポート

Published Tuesday April 25th, 2017 | Leave a comment
Posted in Qt | Tags: , ,

この記事は The Qt Blog の OpenGL Core Profile Context support in QPainter を翻訳したものです。 執筆: Laszlo Agocs, 2017年1月27日 みなさんご存知のとおり、QPainter は複数のバックエンドに対応していて、Qt 5 では主に2つの実装が利用されています。一つは ラスターペイントエンジン で、もう一つは OpenGL ES 2.0 向けの OpenGL2 ペイントエンジンです。 GL ペイントエンジンについて 様々な側面からラスターペイントエンジンが Qt では主役となっていますが、今回は脇役の方についてお話ししたいと思います。GL ペイントエンジンは QPainter が以下に対しての描画の際に使われます。 QOpenGLWindow QOpenGLWidget 現在のコンテキストと描画対象をラップすることができ、主に FBO 向けで使われる QOpenGLPaintDevice 既存の問題点 最近の OpenGL の状況はどうでしょう? 問題の元がなにかというと、Qt 5.0 当時、core profile context を使用して特殊な OpenGL の描画をする必要に迫られている人たちは様々な障害にぶちあたってきました。非推奨や削除された機能(例えば、クライアント側のポインター)に依存していたり、Vertex […]

Read More

Qt Creator 4.3 ベータ版をリリースしました

Published Monday April 10th, 2017 | Leave a comment
Posted in Qt Creator | Tags: , ,

この記事は The Qt Blog の Qt Creator 4.3 Beta released を翻訳したものです。 執筆: Eike Ziller, 2017年3月30日 本日 Qt Creator 4.3 のベータ版をリリースいたしました。 Qt Quick Qt Quick Designer で QML のコードエディタが利用可能になりました。これによってプロパティエディタやナビゲーターに加えソースコードによる編集も可能になりました。分割ビューで編集している場合には、編集結果がすぐに反映されるでしょう。グラフィカルエディタ側には StackedLayout や SwipeView のようなコンテナのサポートや一般的なアクション用のツールバー、HiDPI ディスプレイのサポートが追加されました。 QML プロファイラを利用して Qt Quick アプリケーションのプロファイリングを行う際に QML のコードエディタから直接パフォーマンス関連の情報を見ることも可能になりました。プロファイラ自体も様々なパフォーマンスの改善がなされています。 CMake Qt Creator で CMake 3.7 以降のバージョンを使う場合、CMake 3.7 で導入されたサーバーモードの利用が可能になりました。これにより、これまでジェネレータや Makefile を解析して取得していた情報以上のプロジェクト構成に関するより詳細な情報を取得することが可能になりました。これによりプロジェクト内のプロダクトやターゲットを個別にビルドすることができるようになりました。 CMake のバージョンに関わらず、プロジェクトファイルに明記されていないヘッダファイルもプロジェクトツリーに表示するようにしました。これまでの CMake プロジェクトのインポートに加え、CMake […]

Read More

Qt 5.9 ベータ版をリリースしました

Published Monday April 10th, 2017 | Leave a comment
Posted in Qt | Tags: , ,

この記事は The Qt Blog の Qt 5.9 Beta Released を翻訳したものです。 執筆: Tuukka Turunen, 2017年4月7日 Qt 5.9 のベータ版を本日リリースいたしました。今回のリリース以降はバイナリのインストーラー経由で Qt 5.9 で導入されたすばらしい新機能の数々をお試しいただけます。このリリースではみなさんがオンラインインストーラー経由で今後のリリースにアップデートできるようリリースプロセスを見直しました。 5月末に正式リリース予定の Qt 5.9 では Qt 5.7 や 5.8 ではじめたいくつかの作業が完了しました。Qt 5.6 LTS 以来、C++11 のさらなる活用や、新しいビルドのカスタマイズシステム、描画エンジンの刷新、新しい Qt Quick Controls、Wayland のマルチプロセス対応、Qt 3D など様々な新機能が追加されてきました。また特に組み込みのハードウェアでにむけたパフォーマンスの改善がなされてきました。Qt 5.9 上で動く Qt アプリケーションが様々な Qt の機能を活用できるだけではなく、至上最高のパフォーマンスと安定性で動作することがゴールになります。 Qt 5.9 ではリリースプロセスを少し改善しました。本日リリースしたベータ版以降、オンラインインストーラー経由でさらにいくつかのベータ版のリリースを配信する予定です。これによってユーザーのみなさんが新しいバージョンを試して、フィードバック(bugreports.qt.io を通して)を送っていただくのが簡単になる予定です。ベータ版のフェーズでは1、2週間のサイクルでいくつかのリリースをする予定です。このサイクルで十分な品質に達した時点でリリース候補版を作成し、Qt 5.9.0 の正式バージョンをリリースする予定です。これらはすべてオンラインインストーラー経由で入手可能で、今後のベータリリースやリリース候補版に関してはブログ記事は書かない予定です。それぞれのベータ版に関してはバイナリに加え、それぞれソースパッケージも提供されますので、ご自身でビルドをしていただくことも可能になります。 一人でも多くの方がこの Qt 5.9 のベータ版をインストールし、色々試して […]

Read More

Qt 5.9 でのシェーダーバイナリのキャッシュによるパフォーマンスの改善

Published Wednesday April 5th, 2017 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の Boosting performance with shader binary caching in Qt 5.9 を翻訳したものです。 執筆: Laszlo Agocs, 2017年3月23日 Qt 5.9 のリリースが近づいてきました。というわけで、Qt Quick (および OpenGL を利用した QPainter の描画)のベースとなっている OpenGL の重要な部分に関して行った、わずかですが非常に便利な改善について紹介したいと思います。 Qt 5.9 のドキュメントのスナップショットを見た方の中には 由緒正しい QOpenGLShaderProgram に追加されたいくつかの機能 に気づいた方もいるかもしれません。これは Qt の内部で利用していた API がこの新しい API になりました。これは実際どういうものでしょうか? ここで説明しているように、これらのシェーダープログラムのバイナリが GL_ARB_get_program_binary もしくは OpenGL ES 3.0 の同様の標準機能を用いてディスクに保存されるようになります。ドライバがこの機能を提供していない場合には、キャッシュがない場合と同様の動作になります。キャッシュファイルは書き込み可能な キャッシュ用の場所 に、グローバルもしくはプロセスごとに生成されます。これにより、2回目以降に同じシェーダーのプログラムが使われる場合のパフォーマンスが大幅に改善されます。 実際にどの程度の改善になるでしょう?これは一概にはなんとも言えません。ここ数年、このようなキャッシュを行うようになったドライバもありますし、パイプラインに似たような機能が実装されているドライバも世の中には存在しますが、現時点で市場に出回っているデバイスでは非常に大きな効果がありました。 ここで実際の数値は気にしないでください。重要なポイントは Qt […]

Read More
Get started today with Qt Download now