现在我测试的两个控件是QTableWidget和QTextEdit两个比较常用的需要实现滑屏效果的控件,查询资料得知需要用的是QScroller。比如设置表格:
QScroller *sc = QScroller::scroller(m_Tab);
QScroller::ScrollerGestureType gesture = QScroller::TouchGesture;
sc->grabGesture(m_Tab, gesture);
同理设置文本编辑,也可以这样写:
m_TextEdit = new QTextEdit(this);
QScroller::grabGesture(m_TextEdit, QScroller::TouchGesture);
注意QScroller后面的参数设置有TouchGesture、LeftMouseButtonGesture、MiddleMouseButtonGesture、RightMouseButtonGesture。这四个参数顾名思义就是实现哪一种形式的滑动,比如我设置的是在触摸实现滑屏,后面实现的鼠标滑屏,上面的代码在非触屏设备上是无法响应的,改成LeftMouseButtonGesture,在电脑上用鼠标看看效果:
用鼠标实现类似手机上那种滑动效果,因为现在没有触屏设备所以用上一篇说道的那个驱动模拟一下触屏,改成QScroller::TouchGesture测试也是可以的。
原文链接:https://blog.youkuaiyun.com/qq_41949352/article/details/95595749