gpt4 book ai didi

javascript - 如何制作动态表

转载 作者:行者123 更新时间:2023-12-04 12:39:33 25 4
gpt4 key购买 nike

我的问题是我需要从一个数组 (tFields) 读取表中的名称和列数,并从第二个数组 (tRecords) 读取元素数据。

我已经实现了列的读取和创建,请大家帮忙或告诉我创建列表的问题在哪里。

代码如下:

function buildColumns() {
var rc = vConnection.recCount
var fc = vConnection.fldCount

for(var i = 0; i < fc; ++i)
{
var str = 'import QtQuick 2.1; import QtQuick.Controls 1.0; import QtQuick.Layouts 1.0; TableViewColumn{ id: idColumn; role: '
str += '"' + vConnection.tFields[i] + '"' + '; title: ' + '"' + vConnection.tFields[i] + '"' + '; width: ' + (tblPage.width / vConnection.fldCount) +'; Component.onCompleted: console.log("YEY");}'
tbl.addColumn(Qt.createQmlObject(str, tbl))
}

for(var j = 0; j < rc; ++j)
{
var str2 = 'import QtQuick 2.12; import QtQuick.Window 2.12; import QtQuick.Controls 2.4; import QtQuick.Controls.Imagine 2.3; import QtQuick.Templates 2.5; import QtQuick.Controls 1.4; ListElement { id: idColumn; '
for(var f = 0; f < fc; ++f)
{
str2 += vConnection.tFields[f] + ': "' + vConnection.tRecords[f + rc] + '"; '
}

str2 += '}'

Qt.createQmlObject(str2, lmTable)
}
}

Component.onCompleted: {
buildColumns();
}

TableView {
id: tbl
anchors.fill: parent

model: ListModel {
id: lmTable
}
}

}

最佳答案

不要过度使用字符串连接,因为它可能难以处理,相反,您可以使用“组件”的 createObject 方法,该方法可以以更易读的方式分配属性。

要将项目添加到模型,不必使用 X,而是使用 append 方法,您可以在其中传递字典,使代码更具可读性。

Page {
id: tblPage
title: qsTr("Table")

Component{
id: columnComponent
TableViewColumn{
Component.onCompleted: console.log("YEY")
}
}
ListModel {
id: lmTable
}
function buildColumns() {
var rc = vConnection.recCount
var fc = vConnection.fldCount
for(var i = 0; i < fc; ++i){
var col = columnComponent.createObject(tbl, {"role": vConnection.tFields[i],
"title": vConnection.tFields[i],
"width": (tblPage.width / vConnection.fldCount)})
tbl.addColumn(col)
}
for(var j = 0; j < rc; ++j){
var d = {};
for(var f = 0; f < fc; ++f){
d[vConnection.tFields[f]] = vConnection.tRecords[f + rc]
}
lmTable.append(d)
}
}
TableView {
id: tbl
anchors.fill: parent
model: lmTable
}
Component.onCompleted: buildColumns()
}

关于javascript - 如何制作动态表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60779018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com