QT QML ListView布局未调整大小



我正在尝试创建一个可以通过添加或删除行来扩展或缩短的listView。意识到这很简单,但是问题是列似乎并未根据其新大小重新定位项目。

这是复制问题的最小代码

import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import QtQuick.Window 2.2
ApplicationWindow {
    id: window
    visible: true
    width: 630
    height: 891
    ListModel {
        id: productModel
        ListElement {
            description: "Test"
        }
        ListElement {
            description: "Other test"
        }              
    }
    ListModel {
        id: invoiceModel
        ListElement {
            description: "Factuur 6419"
        }
        ListElement {
            description: "Factuur 6491"
        }
    }
    ColumnLayout {
        width: 500
        ExpandingTable {
            width: 500
            model: productModel;
        }
        TextArea {
            placeholderText: "test"
        }
        ExpandingTable {
            width: 500
            model: invoiceModel;
        }
    }
}

,然后是一个称为flastingtable.qml

的文件
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
ListView {
    id: listView
    height: contentHeight
    interactive: false
    delegate : RowLayout {
        width: parent.width;
        TextField {
            text: description
        }
        Button {
            text: "-"
            onClicked: {
                listView.model.remove(model.index)
            }
        }
    }
    Button {
        text: "+"
        anchors.left: listView.right
        anchors.bottom: listView.bottom
        onClicked: {
            listView.model.append({ description: "" })
        }
    }
}

我特别不确定线条 listView.model.remove(model.index)listView.model.append({ description: "" })以及它是否应该是模型。或实际是ListView.model。

您的问题与ColumnLayout组件有关。只需将其更改为旧的香草Column,然后开心即可。如果您想详细说明,请阅读类似的问题:Stackoverflow

最新更新