如何在其他QML文件中访问"ApplicationWindow"引用?

Ash*_*hif 2 qt qml qt5 qtquick2

我有一个名为main.qml的文件,它实例化ApplicationWindow.我想在其他qml文件中访问此对象(app).

ApplicationWindow {
    id:app
    title: "Title"
    visible: true
    property int keyboardPosition:10//need to access from other qml files for set/get
....
...
}
Run Code Online (Sandbox Code Playgroud)

是否有任何API可用于访问qml应用程序对象?
或如何在qml中设置应用程序设置.是单身类方法还是其他方法?

dte*_*ech 5

ApplicationWindow {
   id: app
   property ApplicationWindow appWindow : app
}
Run Code Online (Sandbox Code Playgroud)

然后appWindow,由于动态范围,将对可嵌套在对象树窗口中的每个对象使用.所以你可以appWindow.keyboardPosition从任何地方.请注意,如果您需要访问的是keyboardPosition- 那么您也可以从任何地方执行此操作,只要它没有被对象树上具有相同名称的另一个属性所掩盖,您就不需要将窗口对象公开为财产本身.

如果您有多个窗口,该属性将自动解析为当前对象所在的窗口.