Хобрук: Ваш путь к мастерству в программировании

QML Могу ли я хранить столбцы в GridView?

Я хочу получить фиксированные столбцы в GridView, такие как Gird.columns.

Является ли это возможным?

Я попробовал verticalLayoutDirection, поток, snapMode в GridView. но он был изменен при изменении размера окна.

например, в listmodel есть 5 элементов. И я хочу только 1 столбец при изменении размера окна. Но когда размер высоты окна меньше общей высоты элементов, он изменился на 1 столбец...

Rectangle {
width: 300; height: 200

    MouseArea {
        anchors.fill: parent
        hoverEnabled: true
        //onClicked: grid.currentIndex = -1
        //onEntered: grid.currentIndex = -1
    }


    Component {
    //Grid {
        id: contactDelegate
        //Grid {
        //columns: 1
        Item {
            width: grid.cellWidth; height: grid.cellHeight
            //columns: 1

            MouseArea {
                anchors.fill: parent
                hoverEnabled: true
                onClicked: grid.currentIndex = index
                onEntered: grid.currentIndex = index
            }

            Column {
                anchors.fill: parent
                Image { source: portrait; anchors.horizontalCenter: parent.horizontalCenter }
                Text { text: name; anchors.horizontalCenter: parent.horizontalCenter }
            }
        }
    }


    GridView {
        id: grid
        anchors.fill: parent
        cellWidth: 80; cellHeight: 80
        //verticalLayoutDirection: GridView.TopToBottom
        //flow: GridView.FlowTopToBottom
        //snapMode: GridView.SnapToRow
        //columns: 1

        model: ContactModel {}
        delegate: contactDelegate
        highlight: Rectangle { color: "lightsteelblue"; radius: 5 }
        focus: true

        flickableChildren: MouseArea {
            anchors.fill: parent
            hoverEnabled: true
            //onClicked: grid.currentIndex = -1
            //onEntered: grid.currentIndex = -1
        }
        Component.onCompleted: currentIndex = -1
    }
}
13.07.2014

Ответы:


1

В зависимости от ориентации GridView привяжите cellWidth или cellHeight к ширине или высоте GridView. Что-то вроде этого:

GridView {
    ...
    cellWidth: grid.width/2       // if you want 2 columns for example
    cellHeight: grid.height/2     // OR, if you want only 2 rows (for horizontal flow)
    ...
}
25.10.2014
Новые материалы

Деревья классификации и регрессии
Это мой второй пост об алгоритмах машинного обучения. Мой первый пост посвящен искусственным нейронным сетям, вы можете найти его ниже. Нейронные сети — базовое..

HMTL - Многозадачное обучение для решения задач НЛП
Достижение результатов SOTA путем передачи знаний между задачами Область обработки естественного языка включает в себя десятки задач, среди которых машинный перевод, распознавание именованных..

Решения DBA Metrix
DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

Начало работы с Блум
Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..