QML सूची दृश्य अंतरिक्ष वस्तुओं को भरने के लिए चौड़ाई

0

सवाल

मैं एक सूची दृश्य (क्षैतिज अभिविन्यास) में qml युक्त कुछ निश्चित आकार के तत्वों. मैं करना चाहते हैं आइटम किया जा करने के लिए बाहर स्थान दिया गया है को भरने के लिए entiew चौड़ाई के सूची दृश्य तत्व है । तो अगर वहाँ रहे हैं कम तत्वों मैं उन्हें चाहते हैं होना करने के लिए बाहर स्थान दिया गया है और अधिक. मूल रूप से मैं क्या जरूरत है, वास्तव में की तरह Layout.fillWidth = true संपत्ति के RowLayout लेकिन के लिए सूची दृश्य.

मैं भरोसा कर सकते हैं कि कितने आइटम मैं है, फिर घटाना कुल आइटम चौड़ाई से सूची दृश्य चौड़ाई से विभाजित आइटम गिनती और आवंटित रिक्ति लेकिन यह भी लगता है मूर्ख करने के लिए करते हैं. वहाँ एक तरीका है यह करने के लिए स्वचालित रूप से की तरह में RowLayout?

enter image description here

या शायद मैं की जरूरत का उपयोग करने के लिए कुछ अलग से सूची दृश्य इस बात के लिए? की तरह कुछ RowLayout लेकिन है कि मैं प्रदान कर सकते हैं की मेरी सूची करने के लिए डेटा मॉडल?

listview qml qt spacing
2021-11-16 13:34:02
1

सबसे अच्छा जवाब

1

आप को पूरा कर सकते हैं कि आप क्या चाहते हैं के साथ एक ListView, तुम बस जरूरत करने के लिए रिक्ति समायोजित गतिशील रूप से कैसे के आधार पर कई प्रतिनिधियों तुम्हारे पास है. इस उदाहरण में टूट जाएगा अगर अपने प्रतिनिधियों कर रहे हैं अलग ढंग से आकार के (के रूप में यह है के आधार पर ही चौड़ाई के प्रतिनिधि), या तो के प्रतिनिधियों cumulatively की चौड़ाई से अधिक ListView.

ListView {
    width: 500
    orientation: Qt.Horizontal
    model: 6
    spacing: {
        if (count > 0) {
            return (width - (itemAtIndex(0).width * count))/(count - 1)
        } else {
            return 0
        }
    }

    delegate: Rectangle {
        implicitHeight: 50
        implicitWidth: 50
        color: "red"
        border.width: 1
    }
}

6 delegates 4 delegates

ListView नहीं हो सकता है, सबसे उपयुक्त कंटेनर इस कार्य के लिए. मैं यह कहना है क्योंकि यह एक में बनाया गया है ScrollView और अन्य व्यवहार है कि यह लगता है जैसे आप की जरूरत नहीं है. यदि आप सभी की जरूरत है एक सरल पंक्ति के कुछ हूबहू आकार के प्रतिनिधियों, मैं के साथ सहमत scopchanov और विश्वास है कि एक Repeater एक RowLayout सबसे अच्छा विकल्प होगा. यहाँ एक सरल उदाहरण है:

RowLayout {
    width: 500

    Repeater {
        model: 6
        delegate: Rectangle {
            implicitHeight: 50
            implicitWidth: 50
            color: "tomato"
            border.width: 1
            Layout.alignment: Qt.AlignHCenter // must be set to align the rectangles within their empty space
        }
    }
}

6 delegates 4 delegates

आप सूचना हो सकता है कि इस परिचय के अंतराल के लिए छोड़ दिया और सही, अगर इन अंतराल अस्वीकार्य हैं, आप की आवश्यकता हो सकती स्थापित करने के लिए spacing पर RowLayout में एक ही तरीके से के रूप में ListView उदाहरण के बजाय.

2021-11-16 18:17:48

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में