Qt 4.7.1 でのジェスチャーの挙動変更について

この記事は Qt Blog の "Gestures in 4.7.1 behavior change" を翻訳したものです。

バグの修正は時に挙動の変更を伴います。ジェスチャーフレームワークは Qt でも新しいフレームワークです。その導入は Qt 4.6 からですが、Qt 4.7 になってその利用が拡大しています。残念なことに、Qt 4.7.0 で修正するには遅すぎるバグを発見しました。そのため、Qt 4.7.1 で修正を行います。

[qt 'ピンチジェスチャー' l=qpinchgesture v=4.7] は拡大率をプロパティとして所持しています。このプロパティは 0.0 で初期化され、回転時に角度が加算されるように、すべての拡大率の総和を計算していました。

これは誤った考え方です。拡大率は乗算で計算するプロパティです。そのため、Qt 4.7.1 ではズームをより簡単に利用できるようにこの恐ろしい間違いを修正します。この挙動変更は Qt をデバイスで使用するためにも、今行うのが重要だと考えています。

これによって、画像を二本の指で拡大/縮小したい場合、指の動きに応じて計算される拡大率 QPinchGesture::scaleFactor() を使って画像を正常に拡大/縮小出来るようになります。

QPinchGesture の拡大率のプロパティを以下に示します。

  • [qt '' 'scaleFactor' l=qpinchgesture p=scaleFactor] – ジェスチャーイベントを受け取るたびに、アイテムをアップデートするために乗算するのに用います。
  • [qt '' 'totalScaleFactor' l=qpinchgesture p=totalScaleFactor] – ピンチの開始時からの拡大率です。 – 最終的な拡大率が必要な場合にはこの値を使います。

Qt の 4.7 branch へのコミットは以下になります:

e6b2bb6d6a48e722311cd2c5fd86c015eab24b4d


Blog Topics:

Comments