我正在尝试使用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图像,但我看到的是附加的屏幕截图,其中水平滚动条可以移动控件和桌子之间的距离很小,图像也非常扭曲。
答案 0 :(得分:1)
是的,只需要声明每个TableViewColumn的高度和重量,例如:
TableViewColumn { id: lengthColumn; role: "length"; title: "Length"; height: parent.height/8; width:parent.width*0.25}