Qt QML列表视图布局不调整大小

Posted

技术标签:

【中文标题】Qt QML列表视图布局不调整大小【英文标题】:Qt QML listview layout does not resize 【发布时间】:2019-05-02 12:27:29 【问题描述】:

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

这是重现问题的最少代码

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;
        
    

然后是一个名为 ExpandingTable.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。

【问题讨论】:

【参考方案1】:

您的问题与ColumnLayout 组件有关。只需将其更改为旧香草Column 并快乐。如需详细解释,请阅读类似问题:***

【讨论】:

以上是关于Qt QML列表视图布局不调整大小的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义 QT 代码显示 QML 文件(实现调整大小/移动功能)

qt页面布局调整不了控件大小

QML布局概述(Qt Quick Layouts Overview)

QT 使用 QT Designer 调整布局大小?

在 Qt 表单的不同布局中调整按钮大小

QML SplitView - 手动调整孩子的大小