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

时间:2016-02-03 13:47:52

标签: 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
....
...
}

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

1 个答案:

答案 0 :(得分:5)

ApplicationWindow {
   id: app
   property ApplicationWindow appWindow : app
}

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

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