QML Tableview水平滚动条

时间:2020-06-18 09:09:30

标签: c++ qt qml

我正在使用TableView QML组件,其中每个列的宽度都设置为表的总宽度除以列数。这引入了一些分数部分,结果,水平滚动条几乎始终在底部可见。

但是我不想禁用滚动条,因为我有能力更改列宽,因此可能需要滚动条。所以我的问题是有关此TableView组件的初始显示。我想在第一次显示组件时摆脱该滚动条,但不要禁用它以备将来使用。

我是QML的新手,并不了解QML的所有方面,但是我遇到的解决方案是像我一样设置每列的宽度,然后为最后一个获取所有先前列的总和并设置其宽度到parent.width-该总和。您能帮我了解如何使用QML来实现吗?

1 个答案:

答案 0 :(得分:0)

columnWidthProvider在添加列中计算一次。我无法重现您的错误。 contentWidthwidth

相同
    TableView {
        id: table
        anchors.fill: parent

        columnWidthProvider: function (column) {
            console.log(parent.width , columns, parent.width / columns)
            // wdth is 0 here
            return parent.width / columns
        }

        ScrollBar.horizontal: ScrollBar {
            policy: ScrollBar.AsNeeded 
        }

//....
    }

但是从另一种观点来看,我有同样的问题。解决方案是:

Flickable {

    id:view

    ScrollBar.horizontal: ScrollBar {
        policy: (view.width - view.contentWidth < -3) ? 
            ScrollBar.AlwaysOff : ScrollBar.AsNeeded}

    }
}
相关问题