0

我想在一个小显示器上显示一个大列表。ListView 的问题是,我必须设置一个方向,无论它是水平的还是垂直的。

我尝试的是:

  1. 我将 ListView 插入到 Flickable 中,并将 Flickable 设置为水平滚动,并将视图设置为垂直滚动,但是我不能同时向两侧滑动
  2. 我尝试将 ListView 的 flickableDirection 属性设置为 Flickable.Horizo​​ntalAndVerticalFlick,但这不起作用。

下面是一个简单的例子:

import QtQuick 2.2
import QtQuick.Window 2.1

Window {
    visible: true
    width: 360
    height: 360

    ListModel {
        id: fruitModel

        ListElement {
            name: "Apple"
            cost: 2.45
        }
        ListElement {
            name: "Orange"
            cost: 3.25
        }
        ListElement {
            name: "Banana"
            cost: 1.95
        }
    }

    ListView {
        anchors.fill: parent

        model: fruitModel

        delegate: Rectangle {
            id: delegateRect
            height: 150
            width: 545

            border.color: "steelblue"
            border.width: 1

            Row {
                Text {
                    id: nameLabel
                    width: 345
                    text: name
                }

                Text {
                    id: costLabel
                    width: 200
                    text: cost
                }
            }
        }
    }
}
4

2 回答 2

1

我认为您正在寻找的解决方案是Repeater.

Repeater 类型用于创建大量相似的项目。与其他视图类型一样,Repeater 有一个模型和一个委托:对于模型中的每个条目,委托在以模型数据为种子的上下文中实例化。Repeater 项通常包含在定位器类型中,例如 Row 或 Column,以直观地定位由 Repeater 创建的多个委托项。

结果RowColumn分别)可以包含在Flickable提供实际轻弹能力的 a 中。

于 2014-11-10T09:02:10.203 回答
0

我在 Qt Doc 中找到了它:https ://doc.qt.io/qt-5/qml-qtquick-listview.html 它对我有用:) 在此处输入图像描述

于 2022-01-26T21:29:46.657 回答