프로그램입니다..Listview 공간을 채우는 폭이

0

질문

나는 ListView(가로 방향)에서 내 얼굴의 일부를 포함하는 고정 크기의 요소입니다. 내가 원하는 항목을 이격을 채우기 위해 entiew 의 폭 ListView 요소입니다. 그래서 있는 경우에는 적 요소를 내가 그들을 간격 out more. 기본적으로 무엇이 필요한지 정확히 같은 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에,당신은 단지 조정할 필요가 간격에 따라 동적으로 얼마나 많은 대표단니다. 이 예제의 뜨는 경우에 당신의 대리자는 다르게 크기(로 이에 근거한 폭의 첫 번째 대리자),또는 대리인의 경우 누적의 폭을 초과하 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 고 믿 RepeaterRowLayout 최선의 선택이 될 것이라고. 여기에 간단한 예제:

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ý
..................................................................................................................