Qt 触屏研究-部分控件实现滑屏效果

上一篇博客是对手势操作的一些研究,这一篇主要是处理在触屏上实现控件类似手机的那种滑动效果。在网上查询资料可知qt有这样的属性。

现在我测试的两个控件是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测试也是可以的。

你可能感兴趣的:(QT)