2017-08-12 112 views
1

我遇到ListView的问题。 ListView太长,并且它的一部分出现在窗口之外,但我无法附加滚动条。我尝试了许多不同的组合。我认为这个问题在于高度参数,但是如果删除它,ListView只显示第一个条目。QML:将滚动条连接到ListView

Column{ 
    anchors.fill: parent 
    Row{ 
     id: buttonsRow 
      Button{ 
       text: "Open dump file" 
       onClicked: fileDialog.visible = true 
      } 
      Button{ 
       text: "Copy raw data to clipboard" 
      } 
    } 
    ListView{ 
     id: listView 
     anchors.top: buttonsRow.bottom 
     height: contentHeight 
     //clip: true 
     flickableDirection: Flickable.VerticalFlick 
     boundsBehavior: Flickable.StopAtBounds 
     interactive: true 
     model: ListModel{ 
      id: listModel 
     } 
     delegate: MDelegate{} 
    } 
} 

有什么办法让它滚动吗?

回答

1

设置heightcontentHeight可能是问题所在。这会使ListView与其所有物品的高度相结合。只有当视图的高度小于其内容的高度时,滚动条才起作用。

这是一个使用的布局,而不是一种方法:

import QtQuick 2.8 
import QtQuick.Controls 2.1 
import QtQuick.Layouts 1.3 

ApplicationWindow { 
    width: 400 
    height: 300 
    visible: true 

    ColumnLayout { 
     anchors.fill: parent 

     RowLayout { 
      id: buttonsRow 
      Button { 
       text: "Open dump file" 
      } 
      Button { 
       text: "Copy raw data to clipboard" 
      } 
     } 

     ListView { 
      id: listView 
      flickableDirection: Flickable.VerticalFlick 
      boundsBehavior: Flickable.StopAtBounds 
      model: 100 
      clip: true 
      delegate: ItemDelegate { 
       text: modelData 
      } 

      Layout.fillWidth: true 
      Layout.fillHeight: true 

      ScrollBar.vertical: ScrollBar {} 
     } 
    } 
} 
+0

谢谢“附加滚动条到Flickable”!现在滚动工作正常。 – Marzanna