qt सभी बच्चों को शामिल करने के लिए तत्व खींचने




qml (2)

आप इस के लिए childrenRect उपयोग कर सकते हैं संपत्ति:

import QtQuick 1.1

Rectangle {
    width: 320
    height: 200

    Rectangle {
        color: "BurlyWood"
        anchors.centerIn: parent
        width: childrenRect.width + 20
        height: childrenRect.height + 20

        Text {
            id: hello
            x: 10
            y: 10
            text: "Hello"
        }

        Text {
            anchors.left: hello.right
            anchors.leftMargin: 10
            anchors.top: hello.top
            text: "World"
        }
    }
}

हालांकि, ध्यान दें कि childrenRect का उपयोग anchors.centerIn: parent का उपयोग कर संयोजन में होता है। anchors.centerIn: parent प्रत्यक्ष बच्चों में से एक में anchors.centerIn: parent बाध्यकारी लूप के बारे में चेतावनी देते हैं।

QML में यह कैसे संभव है कि आप तत्व को ताज़ा करें ताकि उसके सभी बच्चे इसमें फिट हों? और कैसे अंतर निर्दिष्ट करने के लिए? उदाहरण के लिए, मैं एक पाठ के आस-पास एक आयत करना चाहता हूं आयत में कुछ आंतरिक रिक्ति होना चाहिए।

अगर मैं निम्नलिखित लिखता हूं तो आयत का आकार 0,0 है।

Rectangle {
    color: "gray"
    anchors.centerIn: parent;

    Text {
        text: "Hello"
    }
}

यदि मैं इसे Column तत्व का उपयोग कर ठीक करने का प्रयास करता हूं, जैसा कि सुझाव दिया गया है कि क्यूएमएल मदों को सामग्री में फिट करने के लिए कैसे विकसित किया जाए? , तो मुझे पूरी विंडो / अभिभावक के माध्यम से एक कॉलम मिलता है,

Column {
    anchors.centerIn: parent

    Rectangle {
        color: "gray"
        anchors.fill: parent
    }

    Text {
        anchors.centerIn: parent
        text: "Hello"
    }
}

संपादित करें:

मैंने Column बजाय Flow तत्व का उपयोग करने का भी प्रयास किया है, लेकिन फिर मुझे पूरी विंडो / अभिभावक के माध्यम से एक पंक्ति मिली


width और height मैन्युअल रूप से काम करता है, लेकिन थोड़ा बदसूरत है:

Rectangle {
    color: "gray"
    width: label.width+20
    height: label.height+20
    anchors.centerIn: parent

    Text {
        id: label
        anchors.centerIn: parent
        text: "Hello"
    }
}




qml