在QML中,我正在写一个这样的组件:
import QtQuick 2.0
import NDDQuickItem 1.0
Item {
property alias source: ndd.nddContentPath
function goToSlide(component,slide){
ndd.goToSlide(component,slide);
}
NDDQuickItem {
width: parent.width
height: parent.height
id: ndd
}
}
我可以使用property alias
将NDDQuickItem
的属性“提升”到组件的根目录。但是,如图所示,我目前正在编写仅在NDDQuickItem
上重新调用方法的组件全局方法。
是否有适用于方法的property alias
等价物?类似的东西:
method alias goToSlide: ndd.goToSlide // not valid QML
或
goToSlide = ndd.goToSlide // not valid QML
答案 0 :(得分:5)
不使用alias
,但您可以property var v : someId.someFoo
然后object.v()
。
请注意,如果someFoo() { console.log(this) }
,则someId.someFoo()
this
中的someId
将为object.v()
,而this
object
中的this
将为signal goToSlide(var component,int slide)
onGoToSlide: ndd.goToSlide(component,slide)
}。由于JS的工作方式引用函数体中的东西,这不会是一个问题,就像在C ++中使用错误的alias
一样。
您也可以使用信号:
tail -f /var/log/nginx/access.log
通过额外的好处,您可以重新映射"它来自组件外部的其他东西。
无论如何,两者都不是必需的:
我目前正在编写仅重新调用方法的全局方法 NDDQuickItem。
它不是全局的,它是根对象的成员,这样做没有错,这是常见的做法。我的意思是,如果效率是主要考虑因素,那么你就不会编写QML。此外,要知道nginx
也不是免费的,在整数和实物的情况下,它需要与完全成熟的财产相同的空间。