Spec-Zone.ru › Qt 5.15

Тип SplitView QML

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

Оператор импорта: import QtQuick.Controls 2.15
С момента: Qt 5.13
Наследует:

Control

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

Свойства

  • 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 всегда будет один элемент (элемент fill), у которого SplitView.fillWidth установлено в true (или SplitView.fillHeight, если orientation — Qt.Vertical). Это означает, что элемент получит все оставшееся пространство после размещения других элементов. По умолчанию, последний видимый дочерний элемент SplitView имеет это значение, но его можно изменить, явно установив fillWidth в true для другого элемента.

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

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

Чтобы создать 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 2.15
import Qt.labs.settings 1.0

ApplicationWindow {
    // ...

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

    Settings {
        id: settings
        property var splitView
    }

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

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

import QtQuick.Controls 2.15
import Qt.labs.settings 1.0

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 view:

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

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

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

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

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

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

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

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

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

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

SplitView.fillHeight : bool

Это прикреплённое свойство управляет тем, занимает ли элемент оставшееся пространство в split view после размещения всех остальных элементов.

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

Высота split-элемента, для которого fillHeight установлено в true , всё равно ограничена minimumHeight и maximumHeight.

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

SplitView.fillWidth : bool

Это прикреплённое свойство управляет тем, занимает ли элемент оставшееся пространство в split view после размещения всех остальных элементов.

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

Ширина split-элемента, для которого 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.

Примечание: Не устанавливайте свойство высоты элемента разбиения, так как оно будет перезаписано при каждом макете 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-5.15/qml-qtquick-controls2-splitview.html

Spec-Zone.ru

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