在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
}
}
Run Code Online (Sandbox Code Playgroud)
我可以property alias用来"提升" NDDQuickItem组件根目录的属性.但是,如图所示,我目前正在编写仅重新调用方法的组件全局方法NDDQuickItem.
是否有相同property alias的方法?就像是:
method alias goToSlide: ndd.goToSlide // not valid QML
Run Code Online (Sandbox Code Playgroud)
要么
goToSlide = ndd.goToSlide // not valid QML
Run Code Online (Sandbox Code Playgroud)
不使用alias,但你可以property var v : someId.someFoo,然后你可以object.v().
请注意,如果someFoo() { console.log(this) },那么someId.someFoo() this将是someId,而object.v() this将在object.由于JS的工作方式引用函数体中的东西,这不会是一个问题,就像thisC++ 中的错误一样.
你也可以使用一个信号:
signal goToSlide(var component,int slide)
onGoToSlide: ndd.goToSlide(component,slide)
Run Code Online (Sandbox Code Playgroud)
通过额外的好处,您可以从组件外部将其"重新映射"为其他内容.
无论如何,两者都不是必需的:
我目前正在编写全局方法,只是在NDDQuickItem上重新调用一个方法.
它不是全局的,它是根对象的成员,这样做没有错,这是常见的做法.我的意思是,如果效率是主要考虑因素,那么你就不会编写QML.此外,知道这alias也不是免费的,在整数和实物的情况下,它需要与完全成熟的财产几乎相同的空间.
| 归档时间: |
|
| 查看次数: |
2975 次 |
| 最近记录: |