以编程方式获取项目坐标

Get Item coordinates programmatically

我将 QML ApplicationWindow 命名为 ueWindowMain 并在 main.qml 中声明。它里面有一个名为 ueStatusBar 的 QML StatusBar,带有两个图标,名为 ueStatusIndicatorDatabaseConnectedueStatusIndicatorBluetoothPrinterConnected,显示一些状态和一个可检查的 QML Button,名为 ueStaffSelector:

import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.0
import QtQuick.Controls.Styles 1.4

import si.mikroelektronika 1.0

import "gui/items"

ApplicationWindow
{
    id: ueWindowMain

    title: qsTr("uBlagajna Mobile Client ver 0 revision 101")

    width: Screen.desktopAvailableWidth
    height: Screen.desktopAvailableWidth

    visible: true

    opacity: 1.0

    contentOrientation: Qt.LandscapeOrientation

    color: "black"

    statusBar: StatusBar
    {
        id: ueStatusBar

        height: 96

        clip: true

        antialiasing: true

        style: StatusBarStyle
        {
            background: Rectanglstrong texte
            {
                width: parent.width
                height: parent.height

                color: "#303030"
            }   // background
        }   // style

        RowLayout
        {
            spacing: 8

            UeDatabaseStatusIndicator
            {
                id: ueStatusIndicatorDatabaseConnected

                Layout.minimumWidth: 96
                Layout.preferredWidth: 96
                Layout.maximumWidth: 96
                Layout.fillHeight: true

                ueParamImageStatusOn: "qrc:///ueIcons/icons/ueDbConnectionOk.png"
                ueParamImageStatusOff: "qrc:///ueIcons/icons/ueDbConnectionError.png"
            }   // ueStatusIndicatorDatabaseConnected

            UeBluetoothStatusIndicator
            {
                id: ueStatusIndicatorBluetoothPrinterConnected

                Layout.minimumWidth: 96
                Layout.preferredWidth: 96
                Layout.maximumWidth: 96
                Layout.fillHeight: true

                ueParamImageStatusOn: "qrc:///ueIcons/icons/ueBtConnectionOk.png"
                ueParamImageStatusOff: "qrc:///ueIcons/icons/ueBtConnectionError.png"
            }   // ueStatusIndicatorBluetoothPrinterConnected

            UeStaffSelector
            {
                id: ueStaffSelector

                Layout.minimumWidth: 96
                Layout.preferredWidth: 96
                Layout.maximumWidth: 96
                Layout.fillHeight: true
            }   // ueStaffSelector
        }   // RowLayout
    }   // ueStatusBar
}   // ueWindowMain

现在,StatusBar 中的那三个项目使用 RowLayout 定位。我如何在 QML 代码中计算它们的坐标,即以编程方式?

我已经成功解决了以下代码块的问题:

x: ueStatusIndicatorDatabaseConnected.width+
   ueStatusIndicatorBluetoothPrinterConnected.width+2*ueStatusBarLayout.spacing
y: ueWindowMain.height-ueStatusBar.height-ueStaffView.height

目前看来还不错。