Spec-Zone.ru › Qt 6.1

Тип QML SplitView

Выравнивает элементы с перетаскиваемым разделителем между каждым элементом. Подробнее...

Заявление об импорте: import QtQuick.Controls 2.1
С момента: Qt 5.13
Наследует:

Container

  • Список всех членов, включая унаследованные

Свойства

  • handle : Компонент
  • orientation : перечисление
  • resizing : bool

Прикреплённые свойства

  • fillHeight : bool
  • fillWidth : bool
  • maximumHeight : real
  • maximumWidth : real
  • minimumHeight : real
  • minimumWidth : real
  • preferredHeight : real
  • preferredWidth : real
  • view : SplitView

Методы

  • bool restoreState(state)
  • var saveState()

Подробное описание

SplitView — это элемент управления, который выравнивает элементы по горизонтали или вертикали с перетаскиваемым разделителем между каждым элементом.

SplitView поддерживает следующие прикреплённые свойства для управляемых им элементов:

  • SplitView.minimumWidth
  • SplitView.minimumHeight
  • SplitView.preferredWidth
  • SplitView.preferredHeight
  • SplitView.maximumWidth
  • SplitView.maximumHeight
  • SplitView.fillWidth (true для единственного дочернего элемента)
  • SplitView.fillHeight (true для единственного дочернего элемента)

Кроме того, каждый разделитель имеет следующие только для чтения прикреплённые свойства:

  • SplitHandle.hovered
  • SplitHandle.pressed

Примечание: Разделители должны быть только визуальными и не обрабатывать события, так как это может повлиять на их состояния hovered и pressed.

Предпочтительный размер элементов в SplitView можно указать с помощью implicitWidth и implicitHeight или SplitView.preferredWidth и SplitView.preferredHeight.

SplitView {
    anchors.fill: parent

    Item {
        SplitView.preferredWidth: 50
    }

    // ...
}

Для горизонтального SplitView нет необходимости указывать предпочтительную высоту каждого элемента, так как они будут изменены до высоты представления. Это относится и к вертикальным представлениям.

При перетаскивании разделителя SplitView.preferredWidth или SplitView.preferredHeight свойство перезаписывается в зависимости от orientation представления.

Чтобы ограничить размер элементов в горизонтальном представлении, используйте следующие свойства:

SplitView {
    anchors.fill: parent

    Item {
        SplitView.minimumWidth: 25
        SplitView.preferredWidth: 50
        SplitView.maximumWidth: 100
    }

    // ...
}

Чтобы ограничить размер элементов в вертикальном представлении, используйте следующие свойства:

SplitView {
    anchors.fill: parent
    orientation: Qt.Vertical

    Item {
        SplitView.minimumHeight: 25
        SplitView.preferredHeight: 50
        SplitView.maximumHeight: 100
    }

    // ...
}

В SplitView всегда будет один элемент (элемент заполнения), у которого SplitView.fillWidth установлено в true (или SplitView.fillHeight, если orientation это Qt.Vertical). Это означает, что элемент получит оставшееся пространство после расположения других элементов. По умолчанию это последний видимый дочерний элемент SplitView, но это можно изменить, явно установив fillWidth в true для другого элемента.

Разделитель может относиться к элементу слева или сверху, или справа или снизу:

  • Если элемент заполнения справа: разделитель относится к элементу слева.
  • Если элемент заполнения слева: разделитель относится к элементу справа.

Чтобы создать SplitView с тремя элементами и позволить центральному элементу занимать избыточное пространство, можно сделать следующее:

SplitView {
    anchors.fill: parent
    orientation: Qt.Horizontal

    Rectangle {
        implicitWidth: 200
        SplitView.maximumWidth: 400
        color: "lightblue"
        Label {
            text: "View 1"
            anchors.centerIn: parent
        }
    }
    Rectangle {
        id: centerItem
        SplitView.minimumWidth: 50
        SplitView.fillWidth: true
        color: "lightgray"
        Label {
            text: "View 2"
            anchors.centerIn: parent
        }
    }
    Rectangle {
        implicitWidth: 200
        color: "lightgreen"
        Label {
            text: "View 3"
            anchors.centerIn: parent
        }
    }
}

Сериализация состояния SplitView

Основная цель SplitView — позволить пользователям легко настраивать размер различных элементов интерфейса. Кроме того, предпочтительные размеры пользователя должны запоминаться между сеансами. Для этого значения свойств SplitView.preferredWidth и SplitView.preferredHeight можно сериализовать с помощью функций saveState() и restoreState():

import QtQuick.Controls
import Qt.labs.settings

ApplicationWindow {
    // ...

    Component.onCompleted: splitView.restoreState(settings.splitView)
    Component.onDestruction: settings.splitView = splitView.saveState()

    Settings {
        id: settings
        property var splitView
    }

    SplitView {
        id: splitView
        // ...
    }
}

В качестве альтернативы, можно использовать функции value() и setValue() объекта Settings:

import QtQuick.Controls
import Qt.labs.settings

ApplicationWindow {
    // ...

    Component.onCompleted: splitView.restoreState(settings.value("ui/splitview"))
    Component.onDestruction: settings.setValue("ui/splitview", splitView.saveState())

    Settings {
        id: settings
    }

    SplitView {
        id: splitView
        // ...
    }
}

См. также SplitHandle, Настройка SplitView и Элементы управления контейнерами.

Документация по свойствам

handle : Component

Это свойство содержит компонент разделителя.

Экземпляр этого компонента будет создан count - 1 раз, пока count больше, чем 1.

Следующая таблица объясняет, как каждый разделитель будет изменён в зависимости от ориентации представления split:

Ориентация Ширина разделителя Высота разделителя
Qt.Horizontal implicitWidth Высота SplitView.
Qt.Vertical Ширина SplitView. implicitHeight

См. также Настройка SplitView.

orientation : перечисление

Это свойство содержит ориентацию SplitView.

Ориентация определяет, как расположены разделенные элементы:

Возможные значения:

Константа Описание
Qt.Horizontal Элементы выравниваются по горизонтали (по умолчанию).
Qt.Vertical Элементы выравниваются по вертикали.

[только для чтения] resizing : bool

Это свойство true когда пользователь изменяет размер разделенных элементов, перетаскивая разделители.

Документация по прикреплённым свойствам

SplitView.fillHeight : bool

Это прикреплённое свойство контролирует, занимает ли элемент оставшееся пространство в SplitView после размещения всех других элементов.

По умолчанию это свойство установлено для последнего видимого дочернего элемента представления, но его можно изменить, явно установив fillHeight в true для другого элемента.

Высота элемента со свойством fillHeight установленным в true всё ещё ограничена minimumHeight и maximumHeight.

См. также minimumHeight, preferredHeight, maximumHeight и fillWidth.

SplitView.fillWidth : bool

Это прикреплённое свойство контролирует, занимает ли элемент оставшееся пространство в SplitView после размещения всех других элементов.

По умолчанию это свойство установлено для последнего видимого дочернего элемента представления, но его можно изменить, явно установив fillWidth в true для другого элемента.

Ширина элемента со свойством fillWidth установленным в true всё ещё ограничена minimumWidth и maximumWidth.

См. также minimumWidth, preferredWidth, maximumWidth и fillHeight.

SplitView.maximumHeight : real

Это присоединённое свойство управляет максимальной высотой элемента разделителя. preferredHeight привязано к minimumHeight и maximumHeight. Элемент разделителя нельзя перетащить, чтобы он был больше его maximumHeight.

Значение по умолчанию — Infinity. Чтобы сбросить это свойство до значения по умолчанию, установите его в undefined.

См. также minimumHeight, preferredHeight, fillHeight и maximumWidth.

SplitView.maximumWidth : real

Это присоединённое свойство управляет максимальной шириной элемента разделителя. preferredWidth привязано к minimumWidth и maximumWidth. Элемент разделителя нельзя перетащить, чтобы он был шире его maximumWidth.

Значение по умолчанию — Infinity. Чтобы сбросить это свойство до значения по умолчанию, установите его в undefined.

См. также minimumWidth, preferredWidth, fillWidth и maximumHeight.

SplitView.minimumHeight : real

Это присоединённое свойство управляет минимальной высотой элемента разделителя. preferredHeight привязано к minimumHeight и maximumHeight. Элемент разделителя нельзя перетащить, чтобы он был меньше его minimumHeight.

Значение по умолчанию — 0. Чтобы сбросить это свойство до значения по умолчанию, установите его в undefined.

См. также maximumHeight, preferredHeight, fillHeight и minimumWidth.

SplitView.minimumWidth : real

Это присоединённое свойство управляет минимальной шириной элемента разделителя. preferredWidth привязано к minimumWidth и maximumWidth. Элемент разделителя нельзя перетащить, чтобы он был меньше его minimumWidth.

Значение по умолчанию — 0. Чтобы сбросить это свойство до значения по умолчанию, установите его в undefined.

См. также maximumWidth, preferredWidth, fillWidth и minimumHeight.

SplitView.preferredHeight : real

Это присоединённое свойство управляет предпочтительной высотой элемента разделителя. Предпочтительная высота будет использоваться в качестве размера элемента и будет привязана к minimumHeight и maximumHeight. Если предпочтительная высота не задана, будет использоваться implicitHeight элемента.

При изменении размера элемента разделителя preferredHeight устанавливается для отслеживания нового размера.

По умолчанию это свойство не установлено, и вместо этого используется implicitHeight. Чтобы сбросить это свойство до значения по умолчанию, установите его в undefined.

Примечание: Не устанавливайте свойство height элемента разделителя, так как оно будет перезаписано при каждом вычислении макета SplitView.

См. также minimumHeight, maximumHeight, fillHeight и preferredWidth.

SplitView.preferredWidth : real

Это присоединённое свойство управляет предпочтительной шириной элемента разделителя. Предпочтительная ширина будет использоваться в качестве размера элемента и будет привязана к minimumWidth и maximumWidth. Если предпочтительная ширина не задана, будет использоваться implicitWidth элемента.

При изменении размера элемента разделителя preferredWidth устанавливается для отслеживания нового размера.

По умолчанию это свойство не установлено, и вместо этого используется implicitWidth. Чтобы сбросить это свойство до значения по умолчанию, установите его в undefined.

Примечание: Не устанавливайте свойство width элемента разделителя, так как оно будет перезаписано при каждом вычислении макета SplitView.

См. также minimumWidth, maximumWidth, fillWidth и preferredHeight.

SplitView.view : SplitView

Это присоединённое свойство содержит представление разделителя элемента, к которому оно прикреплено, или null если элемент не находится в представлении разделителя.

Документация по методам

bool restoreState(state)

Считывает предпочтительные размеры из state и применяет их к элементам разделителя.

Возвращает true если состояние было успешно восстановлено, иначе false.

См. также Сериализация состояния SplitView и saveState().

var saveState()

Сохраняет предпочтительные размеры элементов разделителя в массив байтов и возвращает его.

См. также Сериализация состояния SplitView и restoreState().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qml-qtquick-controls2-splitview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API