Monthly Archives: March

Qt Quick 入門 第9回: Qt Quick デザイナの使い方

Published Thursday March 31st, 2011 | 2 Comments on Qt Quick 入門 第9回: Qt Quick デザイナの使い方
Posted in Qt Quick 入門 | Tags: , ,

Qt Creator 2.1がリリース されました。これまでもこの連載ではベータ版やリリース候補版を使ってきましたが、今回はいよいよ正式リリースとなった Qt Quick デザイナの使い方を説明します。 Qt Creator 2.1 の変更点 その前に、Qt Creator の 2.0 から 2.1 の変更点でこれまでの連載と関係する点を挙げておきます。 「QML アプリケーション」プロジェクトから「Qt Quick UI」プロジェクトへ名前を変更 「Qt Quick UI」プロジェクトのテンプレートとなる QML ファイルの内容の変更 C++ と QML を連携させて動作させるアプリケーションのテンプレートとなる「Qt Quick アプリケーション」プロジェクトが追加 QML ビューアのパスの指定は無くなり、プロジェクトで使用する Qt に含まれる QML ビューアを実行(このため、別途 Qt 自体のインストールが必須) このあたりでしょうか。これらの変更はリリース候補版の時点で行われていたので、気が付いていた方もいらっしゃるかと思います。これらはどれも複雑な変更ではありませんので、すぐになれると思います。より詳細な変更点に関しては リリースの記事 等を参考にしてください。 画面構成 それでは Qt Quick デザイナの画面構成から説明します。今回の説明は上記の変更点に含まれている新しいテンプレートの「Qt Quick UI」プロジェクトを使って行いますので、新しく「Qt Quick UI」プロジェクトを作成してください。作成された QML ファイルのコードは下記のものになっていると思います。 […]

Read More

Qt Quick 入門 第9回: Qt Quick デザイナの使い方

Published Thursday March 31st, 2011 | 2 Comments on Qt Quick 入門 第9回: Qt Quick デザイナの使い方
Posted in Qt Quick 入門 | Tags: , ,

Qt Creator 2.1がリリース されました。これまでもこの連載ではベータ版やリリース候補版を使ってきましたが、今回はいよいよ正式リリースとなった Qt Quick デザイナの使い方を説明します。 Qt Creator 2.1 の変更点 その前に、Qt Creator の 2.0 から 2.1 の変更点でこれまでの連載と関係する点を挙げておきます。 「QML アプリケーション」プロジェクトから「Qt Quick UI」プロジェクトへ名前を変更 「Qt Quick UI」プロジェクトのテンプレートとなる QML ファイルの内容の変更 C++ と QML を連携させて動作させるアプリケーションのテンプレートとなる「Qt Quick アプリケーション」プロジェクトが追加 QML ビューアのパスの指定は無くなり、プロジェクトで使用する Qt に含まれる QML ビューアを実行(このため、別途 Qt 自体のインストールが必須) このあたりでしょうか。これらの変更はリリース候補版の時点で行われていたので、気が付いていた方もいらっしゃるかと思います。これらはどれも複雑な変更ではありませんので、すぐになれると思います。より詳細な変更点に関しては リリースの記事 等を参考にしてください。 画面構成 それでは Qt Quick デザイナの画面構成から説明します。今回の説明は上記の変更点に含まれている新しいテンプレートの「Qt Quick UI」プロジェクトを使って行いますので、新しく「Qt Quick UI」プロジェクトを作成してください。作成された QML ファイルのコードは下記のものになっていると思います。 […]

Read More

SIMD による文字列のパフォーマンスの改善: リベンジ (fromLatin1)

Published Thursday March 31st, 2011 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は Qt Blog の “Improving string performance with SIMD: the revenge (fromLatin1)” を翻訳したものです。 執筆: Thiago Macieira 2011年3月23日 先週は退屈な日がありました。自分自身のモチベーションをあげるためにも、お気に入りの気晴らし方法の1つ、逆アセンブル結果を読むことにしました(決して暇なわけではないんですが)。これはコンパイラが、あるコードのセクションをどう最適化をしているのかを知るために日頃からやっていることです。これにより、何か新しいことを学んだり、改善の余地を発見することができるのです。先週は色々なことを学んだ週でした。 逆アセンブル結果を読むのはそこで何をしているかを理解している場合にのみ意味があります。アセンブリ言語を理解している必要があるのは言うまでもないことです。それ以上に、何が起きているかを理解している必要があります。ラスターペイントエンジンのような複雑なファイルは、全てが本当にぐちゃぐちゃになっているため全く意味がありません。逆に、qstring.o のような簡単なものを読むことは 昨年私がやったような 様々な成果を生み出します。

Read More

SIMD による文字列のパフォーマンスの改善: リベンジ (fromLatin1)

Published Thursday March 31st, 2011 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は Qt Blog の “Improving string performance with SIMD: the revenge (fromLatin1)” を翻訳したものです。 執筆: Thiago Macieira 2011年3月23日 先週は退屈な日がありました。自分自身のモチベーションをあげるためにも、お気に入りの気晴らし方法の1つ、逆アセンブル結果を読むことにしました(決して暇なわけではないんですが)。これはコンパイラが、あるコードのセクションをどう最適化をしているのかを知るために日頃からやっていることです。これにより、何か新しいことを学んだり、改善の余地を発見することができるのです。先週は色々なことを学んだ週でした。 逆アセンブル結果を読むのはそこで何をしているかを理解している場合にのみ意味があります。アセンブリ言語を理解している必要があるのは言うまでもないことです。それ以上に、何が起きているかを理解している必要があります。ラスターペイントエンジンのような複雑なファイルは、全てが本当にぐちゃぐちゃになっているため全く意味がありません。逆に、qstring.o のような簡単なものを読むことは 昨年私がやったような 様々な成果を生み出します。

Read More

セキュリティ勧告: 偽の証明書

Published Wednesday March 30th, 2011 | Leave a comment
Posted in Qt | Tags: , ,

この記事は Qt Blog の ”Security advisory: Fraudulent certificates” を翻訳したものです。 執筆: Peter Hartmann 2011年3月29日 偽の SSL 証明書によって引き起こされる存在的な脅威に対応する Qt 4.6 および 4.7 用の パッチ を作成しました。 背景: SSL 認証局(CA)から偽の SSL 証明書が不正に取得されました。 それらの証明書では取得者が Web でその他のサイトになりすませる可能性があります。攻撃者は mail.google.com, login.yahoo.com と login.live.com 等のサイトの有効な証明書を利用できます。 以下のパッチはそれらの偽証明書をブラックリストに載せ、これらの証明書を利用するサイトとの SSL ハンドシェイクを中断することで問題を解決します。このパッチは Qt 4.6 と 4.7 の全てのバージョンに適用されます。全ての Qt 4.6.x と 4.7.x のソースに適用できるはずです。今後の Qt のリリースにはこの修正が取り込まれます。 blacklist-fraudulent-comodo-certificates-patch.diff この偽証明書の問題に関する詳細と全てのサイトのリストは http://www.comodo.com/Comodo-Fraud-Incident-2011-03-23.html を参照してください。 […]

Read More

SIMD による文字列のパフォーマンスの改善(か?)

Published Monday March 28th, 2011 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は Qt Blog の “Improving the string performance with more SIMD (or not)” を翻訳したものです。 執筆: Thiago Macieira 2010年8月25日 Benjamin や Samuel などによる SIMD 対応に触発され、また、誰よりもこの件に精通している Intel のエンジニア達から直接様々なことを学ぶ機会を得たため、勤務時間外に私も SIMD 関連のコードを書くことにしました。画面の合成や重ね合わせ、描画などについてはそもそも十分に理解をしていないので、自分の理解が及ぶ分野である QtCore に対して挑戦することにしました。 2010 年の始めに Benjamin は Latin 1(ISO-8859-1)から QString への変換とその逆変換のパフォーマンスを SSE2 と Neon を利用して改善するコードを書きました。このコミット(60fd302e)は Qt 4.7 ブランチに対して行われ、fromLatin1 では4倍の改善が見られました。逆変換では改善の幅はこれに比べてわずかに小さくなりました。これは UTF-16 での文字コードが Latin 1 の範囲に収まるかどうかのチェックが必要なためです。それから、私は 2009 年に QString::operator== 関数を Lars […]

Read More

ヒントを活用したフォントのラスタライズ

Published Friday March 25th, 2011 | Leave a comment
Posted in Qt | Tags:

この記事は Qt Blog の “Hint, hint, nudge, nudge, say no more!“を翻訳したものです。 執筆: Eskil Abrahamsen Blomfeldt 2011年3月14日 この記事の執筆時点で、Qt のバグトラッカー で最も多くの投票を得ているのは “Allow better font rendering for projects like Koffice” (Koffice のようなプロジェクトのためのより良いフォントレンダリング) という若干漠然としたタイトルのタスクです。 このタスクの背景として、Qt がフォントのデザインメトリックスで行うテキストのレイアウトにおけるクロスプラットフォームサポートの欠如があります。Qt のフォントのバックエンドはオペレーティングシステムに依存しているため、テキストの描画にヒントを使用する場合があります。ヒントの利用とは、特定のサイズと解像度での描画用に最適化されたグリフ(字体)を、さらに画面に描画される前にわずかに変更することを意味しています。プリンタのような高解像度のデバイスではグリフのヒントは必要ありません。しかし、デスクトップモニタのように低解像度で表示する際には、ヒントを使用してピクセルグリッドに沿った配置にする事で、よりくっきりとした字体ではっきりと読めるように出来るでしょう。 代表的な例を挙げると、水平および垂直方向のグリフのヒント(フルヒント)を活用するものとして Windows の GDI、一切のヒントを使用しないものとして Mac OS X の Core Text があります。Linux でテキストのラスタライズに用いられる FreeType ではフルヒントから垂直方向のみ、ヒントなしまでカスタマイズする事が出来ます。Windows と Mac のテキストラスタライズの違いを下記のスクリーンショットでご確認ください。

Read More

Qt Creator 2.2 ベータリリース

Published Friday March 25th, 2011 | Leave a comment
Posted in Qt Creator, ニュース | Tags: , ,

この記事は Qt Blog の ”Qt Creator 2.2 beta release” を翻訳したものです。 執筆: Eike Ziller 2011年3月24日 Qt SDK 用に Qt Creator 2.1.0 を安定化させている間でも、次のバージョンに向けて新機能の開発とバグ修正を懸命に行ってきました。全機能を実装した Qt Creator 2.2 のベータリリースを本日行えることを誇りに思います。とはいえ、このリリースの喜びは愛すべきホッキョクグマである クヌート の死によってくすんでしまいました。彼の思い出にあやかって、このリリースには “Knut Creator” のコードネームが付けられました。 Qt Creator には便利な新機能が追加され、多数の修正と改良が行われました。貢献者の皆さん、特に Bazaar バージョン管理システムのサポートを実装した Hugues Delorme とテキストエディタにマクロ機能を実装した Nicolas Arnaud-Cormos に感謝します。

Read More

SIMD 対応による描画のパフォーマンスの改善

Published Friday March 25th, 2011 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は Qt Blog の “Improving the rendering performance with more SIMD” を翻訳したものです。 執筆: Benjamjn 2010年8月24日 最近の2つのバージョンの Qt (訳注:この記事は Qt 4.7 がリリースされる前に書かれたものです)では、パフォーマンスの改善を行ってきました。Qt 4.5 で プラグイン形式のグラフィックスシステム を導入し、数多くの描画の最適化も行いました。Qt 4.6 では全ての範囲を対象に最適化を行いました。組み込み機器でのパフォーマンスはパッチリリース毎に順調に改善されています。 常にスピードを向上させてきた事により、さらに改善するための手法は不足気味です。とはいえ、Qt 4.7 をさらに高速なものにするために、私たちは全く別の改善方法を探さなければなりません。 Single Instruction, Multiple Data Qt 4.7 を高速化する上で用いた1つの方法はプロセッサをより効率よく利用する方法です。最近のプロセッサは複数のデータを一つの命令で処理する手段を持っています。これは SIMD と呼ばれています。最近の x86 プロセッサの SSE 拡張、ARM Cortex の場合は Neon がこれに当たります。 この原理は簡単です。複数のデータに対して1つの命令で処理をした実際の例を見てみましょう。 quint32 a[256]; quint32 b[256]; quint32 c[256]; // […]

Read More

SIMD 対応による描画のパフォーマンスの改善

Published Friday March 25th, 2011 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は Qt Blog の “Improving the rendering performance with more SIMD” を翻訳したものです。 執筆: Benjamjn 2010年8月24日 最近の2つのバージョンの Qt (訳注:この記事は Qt 4.7 がリリースされる前に書かれたものです)では、パフォーマンスの改善を行ってきました。Qt 4.5 で プラグイン形式のグラフィックスシステム を導入し、数多くの描画の最適化も行いました。Qt 4.6 では全ての範囲を対象に最適化を行いました。組み込み機器でのパフォーマンスはパッチリリース毎に順調に改善されています。 常にスピードを向上させてきた事により、さらに改善するための手法は不足気味です。とはいえ、Qt 4.7 をさらに高速なものにするために、私たちは全く別の改善方法を探さなければなりません。 Single Instruction, Multiple Data Qt 4.7 を高速化する上で用いた1つの方法はプロセッサをより効率よく利用する方法です。最近のプロセッサは複数のデータを一つの命令で処理する手段を持っています。これは SIMD と呼ばれています。最近の x86 プロセッサの SSE 拡張、ARM Cortex の場合は Neon がこれに当たります。 この原理は簡単です。複数のデータに対して1つの命令で処理をした実際の例を見てみましょう。 quint32 a[256]; quint32 b[256]; quint32 c[256]; // […]

Read More
Get started today with Qt Download now