有没有办法在QML
中获取项目类?我知道objectName
和id
等等,但它看起来有点奇怪,不太舒服。这就是我需要的:
ComboBox {
id: comboBox
}
TextField {
id: textField
}
function getValue(item) {
switch(item.???) { //what property can I use here?
case 'ComboBox':
return item.model.get(item.currentIndex).value;
case 'TextField':
return item.text;
}
}
使用互联网上许多文章中描述的objectName
可能含糊不清,例如:
ComboBox {
id: comboBox
objectName: "ComboBox"
}
TextField {
id: textField
objectName: "ComboBox" /// oops!!
}
function getValue(item) {
switch(item.objectName) {
case 'ComboBox':
return item.model.get(item.currentIndex).value;
case 'TextField':
return item.text;
}
}
答案 0 :(得分:1)
不,这只能通过C ++完成。
答案 1 :(得分:0)
我也遇到了同样的问题。 以下回复可能是一个很好的解决方法:https://stackoverflow.com/a/13928333/1994341。
也就是说:对于每个项目,您使用唯一名称设置属性“objectName”。 objectName是QtObject的唯一属性,由每个QML项继承。
据我所知这是一个小姐,但QML是一个很棒的工具。