【发布时间】:2017-09-23 12:17:38
【问题描述】:
我有一个表格视图,我想在一行的 onPressAndHold 上打开一个对话框,并显示“orderNumber”行的单元格的值。 但我收到错误消息:ReferenceError: row is not defined
TableView {
id: tableviewopenorders
height: 180
clip: false
visible: true
onPressAndHold: oocanceldialog.open()
TableViewColumn {
id: orderNumberColumn
role: "orderNumber"
title: "Order Number"
}
model: openordersModel
}
ListModel {
id: openordersModel
ListElement {
orderNumber: "1223455"
}
ListElement {
orderNumber: "111111"
}
}
Dialog {
id: oocanceldialog
title: "Cancel confirmation"
standardButtons: Dialog.Ok | Dialog.Cancel
x: (parent.width - width) / 2
y: (parent.height - height) / 2
Label {
text: openordersModel.get(row).orderNumber
}
onAccepted: console.log("Ok clicked")
onRejected: oocanceldialog.close()
}
【问题讨论】:
-
我不熟悉这种语言,但直观地说,您的代码中似乎没有任何内容可以在表达式
openordersModel.get(row).orderNumber中设置row。那是导致错误的行吗?是否有用于单击单个行与单击表本身的事件处理程序?也许尝试寻找类似的东西? -
是的,这就是导致错误的行。例如,当我将
onPressAndHold: oocanceldialog.open()替换为onPressAndHold:console.log(openordersModel.get(row).orderNumber)时,我得到了正确的输出,当我按住第一行时,我得到了 1223455,当我按住第二行时,我得到了打印的 111111。但是当它在 tableview 上下文之外时,这条线不起作用 -
我想知道您认为对话框将如何获得该行。将
property int row添加到对话框中,然后在打开之前从 pressandhold 处理程序中设置它。 -
不,不...试试我的:-)