QML Listview พื้นที่รายการเพื่อเติมเต็มความกว้าง

0

คำถาม

ฉันมี ListView(แนวนอนปฐมนิเทศ)ในของฉัน qml บรรจุบางอย่าซ่อม-ขนาดของธาตุหลัก-แล้วอีก ฉันต้องการรายการที่จะเว้นระยะห่างโดยสิ้นเชิออกเพื่อเติมเต็มที่ entiew ความกว้างของ ListView ององค์ ดังนั้นถ้ามีน้อยกว่าส่วนประกอบฉันอยากให้พวกเขาเว้นระยะห่างโดยสิ้นเชิออกไปมากกว่านั้น ง่ายๆก็คือสิ่งที่ฉันต้องการเป็นเหมือ Layout.fillWidth = true ทรัพย์สินของ RowLayout แต่สำหรับ ListView.

ฉันจะนับมีกี่รายการฉันมีแล้วลดรายการไอคอนต่างๆจากความกว้าง ListView ความกว้าง,แบ่งแยกโดยรายการนับและกำหนดที่ระยะห่างระหว่างบรรทัดแต่มันดูเหมือนว่าเหมือนกัโง่ต้องทำ มันมีทางที่จะทำนี้โดยอัตโนมัติอย่างใน RowLayout?

enter image description here

หรือบางทีฉันอาจต้องการที่จะใช้บางอย่างแตกต่างจาก ListView สำหรับเรื่องนี้? บางอย่างเหมือน RowLayout แต่ว่าฉันสามารถกำหนดของรายการข้อมูลของรุ่นเพื่อ?

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

คำตอบที่ดีที่สุด

1

คุณสามารถย่อมทำสิ่งที่คุณต้องการ ListViewคุณแค่ต้องการปรับค่าระยะห่างระหว่างบรรทัด dynamically จากกี่ delegates คุณมี นี่ตัวอย่างจะพังลงถ้าคุณคณะผู้แทนกำลังต่างออกไซ(ที่นี่คือพื้นฐานเดียวบนความกว้างของคนแรกวแทน)หรือถ้า delegates 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 และอีก behaviors นั่นมันฟังดูเหมือนคุณไม่ต้องการ ถ้าทั้งหมดที่คุณต้องการคือง่ายอย่างแถวของสา identically ไซ delegates ฉันเห็นด้วยกับ 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

คุณอาจสังเกตเห็นว่ามันจะกล่าวแนะนำช่องเล็กๆส่งเสียงโหยวซ้ายแล้วก็พูดถูกถ้าพวกนี้เป็นช่องเล็กๆส่งเสียงโหยอมรับไม่่ได้คุณอาจจะต้องตั้งค่า spacingRowLayout อยู่ในที่เดียวกับที่ ListView ตัวอย่างแทน

2021-11-16 18:17:48

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่