使用触控板或触摸板的两根手指移动平滑和动态滚动?
Posted
技术标签:
【中文标题】使用触控板或触摸板的两根手指移动平滑和动态滚动?【英文标题】:Two finger moving smooth and kinetic scrolling with trackpad or touchpad? 【发布时间】:2014-05-15 06:37:26 【问题描述】:我正在开发一个类似于 Mac 的 hex editor 的 Qt 应用程序。 (图片来自谷歌)
它有很大一部分数据需要垂直滚动(向上和向下),因为它以十六进制格式显示所有大文件数据。
在我的应用程序中,我想在两个方向上添加两指平滑滚动:向上和向下,就像 Macbook Air 两指滚动一样。 它适用于鼠标滚轮,但不适用于触控板两指移动滚动。
如果有人有解决方案,请帮助我。提前致谢。
【问题讨论】:
请编辑您的帖子以使用可接受的英语,并告诉我们您已经尝试过什么。 【参考方案1】:滚动条允许点击和拖动等手势进行动态滚动。
http://qt-project.org/doc/qt-5/qscroller.html#details
本页注意事项:
QScroller::TouchGesture 0
The gesture recognizer will only trigger on touch events. Specifically it will react on single touch points when using a touch screen and dual touch points when using a touchpad.
那么他们给你的例子会变成这样:
QWidget *w = ...;
QScroller::grabGesture(w, QScroller::TouchGesture);
还有更多关于通过处理 QTouchEvent 来使用触摸屏和触摸板做新事情:
http://qt-project.org/doc/qt-5/qtouchevent.html#details
希望对您有所帮助。
【讨论】:
实际上我正在使用 Qt 4.6 并且没有名为 QScroller 的类。请建议我替代解决方案。 Qt 5.x 不是一个选项?我认为以前没有很好地支持触摸。您也可以尝试实现自己的动态滚动并使其所在的 QScrollArea 具有很强的焦点。然后处理 mouseScrollEvents 进行动态滚动。 在 Qt 4.x 上实现它的其他一些方法:blog.qt.digia.com/blog/2009/07/19/…developer.nokia.com/community/discussion/showthread.php/… 它与鼠标滚轮完美配合,但在触控板或触摸板垂直移动两根手指(向上和向下)时,它只能读取为一个滚动条(因为我们只移动一次鼠标滚轮)。 如何使用触控板获取 mouseWheel.delta(),移动两根手指。以上是关于使用触控板或触摸板的两根手指移动平滑和动态滚动?的主要内容,如果未能解决你的问题,请参考以下文章