qt - सामग्रियों को फिट करने के लिए क्यूएमएल वस्तुओं को कैसे विकसित किया जाए?




qml (2)

सामग्री फिट करने के लिए सर्वरइटम कैसे बढ़ाना है? अभी सर्वरइटम सिर्फ एक-दूसरे को ओवरलैप करते हैं।

main.qml

import Qt 4.7
import "Teeworlds" as Teeworlds

Item {
    Column {
        Teeworlds.ServerItem {
            serverName: "InstaGib, lost [xyz]"
        }

        Teeworlds.ServerItem {
            serverName: "Arena.sbor (rus)"
        }
    }
}

ServerItem.qml

import QtQuick 1.0

BorderImage {
    id: serverItem

    property string serverName: "unnamed server"
    property string gameType: "DM"
    property int numPlayers: 0
    property int maxPlayers: 8
    property int ping: 60

    Text {
        id: title
        text: parent.serverName
    }

    Grid {
        id: grid
        anchors.top: title.bottom
        columns: 2
        rows: 3
        Text { text: "Gametype: " }  Text { text: gameType }
        Text { text: "Players: " }   Text { text: numPlayers + "/" + maxPlayers }
        Text { text: "Ping: " }      Text { text: ping }
    }
}

असल में यह काफी आसान है। ServerItem ऑब्जेक्ट्स का कोई आकार नहीं है, आप केवल सामग्री देख सकते हैं क्योंकि कोई क्लिपिंग नहीं है। समाधान या तो सर्वरइटम क्लास (या main.qml में उदाहरण) में ऊंचाई और चौड़ाई निर्धारित करने के लिए या एक बढ़ते तत्व का उपयोग करने के लिए, उदाहरण के लिए कॉलम, सर्वरइटम रूट तत्व के रूप में होगा।

import QtQuick 1.0

Column {
    id: serverItem

    BorderImage {
        anchors.fill: parent
    }

    //... the rest
}

आपको आकार को स्पष्ट रूप से सेट करना होगा ताकि पंक्ति / कॉलम के अंदर दो QML तत्व ओवरलैप न हों।