QScrollArea - 如何启用触摸交互以滚动到下一个项目?

时间:2011-01-28 07:04:16

标签: qt symbian

我正在使用诺基亚Qt SDK并在顶部区域设计了一个小横幅旋转木马。它看起来像这样:

UI demo

层次结构如下:

UI hierarchy

在模拟器中安装后,我尝试使其可滚动(投掷)。这是一个我猜的简单任务(比如Android中的ScrollView或iOS中的UIScrollView),但到目前为止还没有任何乐趣。互联网上的所有链接都指向我自定义滚动实现等等,我不想做也不希望这样做,因为Qt应该是更高级别的框架?这里的最新技术是什么? ; - )

简而言之:如何使QScrollArea响应触摸(滚动,滚动,拖动等)事件并显示队列中的其他小部件?我不希望它能够“捕捉”到子窗口小部件中(这是后来的另一个要求;))。

2 个答案:

答案 0 :(得分:3)

看看Flickable(在http://blog.qt.io/blog/2009/07/19/kinetic-scrolling-on-any-widgets/)和FlickCharm(从第一个地址链接)要么想知道如何自己实现它,要么按原样使用它。

请注意,如果您的目标是Maemo,则可能没有必要,因为它的Qt端口会处理它。

答案 1 :(得分:0)

您是否尝试过启用手势?我还没有使用过手势支持,但它看起来像

一样简单
scrollEvents->grabGesture(Qt::SwipeGesture);
// or...
scrollEvents->grabGesture(Qt::PanGesture);

我不知道QScrollArea是否已经处理过手势,所以如果这不起作用,你可能需要子类QScrollArea并覆盖event方法来处理手势事件,如{{ 3}}