TableView 的 QML 大小不正确
Posted
技术标签:
【中文标题】TableView 的 QML 大小不正确【英文标题】:TableView not the correct size with QML 【发布时间】:2016-03-07 22:45:12 【问题描述】:我正在尝试使用 QML 创建一个 TableView,其中有一个复选框、一个图像和一个文本字段。表列定义如下:
// TableViewCheckBoxColumn.qml
TableViewColumn
title: ""
role: "check"
delegate: CheckBox
anchors.fill: parent
checked: styleData.value
//TableViewImageColumn.qml
TableViewColumn
title: ""
role: "thumbnail"
delegate: Image
anchors.fill: parent
source: styleData.value
width: 30
height: 30
现在将数据模型和表本身定义为 QML 组件,如下所示:
Item
ListModel
id: sourceModel
ListElement
check: false
thumbnail: "file:///Users/xargon/alignment.png"
length: "10:22"
// Table view
TableView
anchors.centerIn: parent
alternatingRowColors: false
TableViewCheckBoxColumn
id: checkedColumn
TableViewImageColumn
id: thumbColumn
TableViewColumn
id: lengthColumn
role: "length"
title: "Length"
model: sourceModel
现在,它被嵌入到 ColumnLayout 和 StackView 中:
ColumnLayout
anchors.fill: parent
MyTable
id: reviewScreen
Layout.fillWidth: true
StackView
id: options
Layout.fillHeight: true
Layout.fillWidth: true
initialItem: reviewScreen
现在我期待表格填满父控件的整个宽度,我也期待图像被绘制为 30 x 30 图像,但我看到的是附加的屏幕截图,其中水平滚动条可以移动控件和表格之间的距离很小,图像也很失真。
【问题讨论】:
您需要在每个元素上指定宽度和高度。 【参考方案1】:是的,只需要声明每个TableViewColumn的高度和重量,例如:
TableViewColumn id: lengthColumn; role: "length"; title: "Length"; height: parent.height/8; width:parent.width*0.25
【讨论】:
以上是关于TableView 的 QML 大小不正确的主要内容,如果未能解决你的问题,请参考以下文章