如何使QML TableView行高动态适应内容

时间:2018-10-31 11:32:39

标签: qt qml qtableview

问题如下:

如果文本的长度大于单元格的宽度,则文本将被换行,但行的高度不会增加。显示剩余的文本。我的另一个问题是,如何使每个单元格的高度适应其中包含的文本?

Screenshot

这是QML部分:

Window {
id: window
visible: true
width: 440
height: 400
title: qsTr("Table test")

ListModel {
    id: stringsModel

    ListElement {
        ID: 0
        String: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam'
    }
    ListElement {
        ID: 1
        String: 'This is a test string'
    }ListElement {
        ID: 1
        String: 'This is another test string'
    }
}

TableView {
    anchors.fill: parent
    frameVisible: false
    model: stringsModel

    TableViewColumn { role: "ID"; title: "ID"; width: window.width / 2 }
    TableViewColumn { role: "String"; title: "String"; width: window.width / 2; delegate: stringDelegate;}

    Component {
        id: stringDelegate
        Item {
            id: stringItem
            Text {
                id: stringTxt
                width: parent.width
                text: styleData.value
                wrapMode: TextEdit.WordWrap
            }
        }
    }
}

}

1 个答案:

答案 0 :(得分:0)

您的委托人的根项目应定义其implicitHeight属性。 像这样:

Component {
    id: stringDelegate
    Item {
        id: stringItem
        implicitHeight: stringTxt.paintedHeight
        Text {
            id: stringTxt
            width: parent.width
            text: styleData.value
            wrapMode: TextEdit.WordWrap
        }
    }
}
相关问题