2011-01-28 20 views
4

私はNokia Qt SDKを使用しており、上部に小さなバナーカルーセルを設計しました。それは次のようになります。QScrollArea - タッチ操作を有効にして次のアイテムにスクロールする方法は?

UI hierarchy

エミュレータでこれをインストールした後、私はそれがスクロール(投げつけ)作ってみる:

UI demo

階層は次のようになります。それは私が推測する簡単なタスク(AndroidのScrollViewやiOSのUIScrollViewなど)ですが、これまでのところ喜びはありません。インターネット上のすべてのリンクはカスタムスクロールの実装などを指しています。Qtはより高いレベルのフレームワークでなければならないので、やりたいこともやりたくないのですか?ここにはどのような技術がありますか? ;-)

質問:私はこのQScrollAreaをタッチ(飛ばし、スクロール、ドラッグなど)イベントに応答させ、キュー内の他のウィジェットを公開するにはどうすればいいですか?私はそれが子ウィジェットにスナップすることを期待していません(それは後で別の要件です))。 Thx。

+0

QFingerScrollAreaが見つかりました:http://www.youtube.com/watch?v=OPQ1VlyMPYU –

+0

QScrollAreaは(少なくとも新しいqtsでは)タッチ操作を直接サポートしています。私は把握していませんが、どのプロジェクトでQAbstractScrollAreaに基づいて2つのコントロールがあり、1つはタッチでスクロールを制御し、もう1つはコントロールしません。答えが更新されるなら、いいですか – BeniBela

答えて

3

Flickable(http://blog.qt.io/blog/2009/07/19/kinetic-scrolling-on-any-widgets/)とFlickCharm(その最初のアドレスからリンクされています)を見て、それを自分で実装するか、そのまま使用するかを考えてください。

ターゲットがMaemoの場合、Qtポートがそれを処理するので、必要ではないかもしれないことに注意してください。

+0

http://labs.qt.nokia.com/2009/07/19/kinetic-scrolling-on-any-widgets/ dead link – sancelot

+0

私はこれが新しいリンクだと思う:http://blog.qt.io/ blog/2009/07/19/kinetic-scroll-on-any-widgets/ – frozenkoi

+0

@frozenkoi質問を編集して正しいリンクを追加してみませんか? – Fritz

0

ジェスチャーを有効にしましたか?私はまだジェスチャーのサポートを使用していないが、それはQScrollAreaはすでにジェスチャーを処理する場合、私は知らないので、問題が解決しない場合は、あなたがサブする必要があるかもしれません

scrollEvents->grabGesture(Qt::SwipeGesture); 
// or... 
scrollEvents->grabGesture(Qt::PanGesture); 

ほど簡単だように見えます Gestures Programming Guideで説明されているように、QScrollAreaクラスを使用して、 eventメソッドをオーバーライドしてジェスチャーイベントを処理します。

+0

これはQt 4.7ですか? Nokia Qt SDKのダウンロードで正しいQt 4.6を使用する必要がありますか?少なくともダウンロードするオプションはありません4.7。 (SDKインストーラーが壊れている、ウェブサイトのダウンロードのみがバンドルされている4.6)。 –

+0

OK、私はそれを参照してください、また4.6のドキュメントで利用可能です、それを試してみてください、thx! –

+0

うん、試した - と喜びはありません。全体の話は複雑であるようです。カスタムのTouch/Flingなどのレスポンダを実装している人もいれば、かなりショックを受けます。もう少し完成した解決策を探していた。 –

関連する問題