首页 文章

桌面上的QML,ScrollView和触摸事件

提问于
浏览
0

几个月后,直接在ListView项中我们可以使用ScrollBar.vertical:ScrollBar {}来提供适当的滚动条 . 不幸的是,它本身并不适合我,所以我决定用ScrollView包围项目中的每个ListView,现在它工作正常,除了一件事:

import QtQuick 2.9
import QtQuick.Controls 2.2
//import QtQuick.Controls 1.4

ApplicationWindow {
  visible: true
  width: 640
  height: 480
  title: qsTr("Scroll")

  ScrollView {
    anchors.fill: parent

    ListView {
      anchors.fill: parent
      model: 20

      delegate: Text {
        text: "Item " + (index + 1)
        height: 50
        width: parent.width
      }
    }
  }
}

在上面的示例中,我无法使用触摸事件来滚动视图 . 我正在使用Windows 10,如果我使用来自QtQuick.Controls 1.4或QtQuick.Controls 2.2的ScrollView并不重要 . 如果我按住鼠标按钮,视图将不会跟随鼠标移动就像它一样仅在ListView的情况下 .

有没有办法为这种处理滚动条的特定方法恢复此行为?

1 回答

  • 0

    使用 Flickable { } 而不是 ScrollView .

    *** EDIT ***

    Flickable {} 允许用户使用触摸事件(如轻弹,拖动等)左右滚动 .

    它专为触摸屏而设计 . 您可以像使用ScrollView {}一样使用它作为容器类 .

    Flickable {
    
    
      anchors.fill: parent
    
            ListView {
              anchors.fill: parent
              model: 20
        }
    }
    

相关问题