c++ - QML Tableview 水平滚动条
问题描述
我正在使用TableView
QML 组件,其中每个列宽设置为表格总宽度除以列数。这引入了一些分数部分,结果,水平滚动条几乎总是在底部可见。
但我不想禁用滚动条,因为我有能力改变列宽,并且可能需要滚动条。所以我的问题是关于这个TableView
组件的初始显示。我想在第一次显示组件时去掉那个滚动条,但不要禁用它以备将来使用。
我是 QML 的新手,不知道它的所有方面,但我想到的解决方案是像我一样设置每列的宽度,然后为最后一个获取所有先前列的总和并将其宽度设置为父级。宽度 - 那个总和。您能帮我理解如何使用 QML 实现它吗?
解决方案
columnWidthProvider在添加列时计算一次。我不能用这个重现你的错误。contentWidth
变得一样width
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}
}
}
推荐阅读
- r - 如何从 URL 中只有月份和年份的网站从多个表中提取内容
- git - 我可以将本地 Git 连接到不同的服务器帐户吗?
- r - 使用 train() 时出错:选择了未定义的列
- c++ - С++。libssh2. 静态链接。Unresolver 外部符号
- python - 我必须编写一个程序,使用二次方程,它要求你输入 a、b 和 c 的值
- python - Pandas - 将值作为字符串类型转换为浮点数
- c# - F# 等效于 C# 代码输出不同,可能的数学差异?
- c - 使用结构数组的分段错误
- python - RuntimeWarning:在乘法中遇到无效值,RuntimeWarning:在日志中遇到除以零
- apache-spark - Spark History Server 未显示已完成的作业