Spec-Zone.ru › Qt 5.13

Тип SplitView QML

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

Заявление импорта: import QtQuick.Controls 2.5
С тех пор: 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

Предпочтительный размер элементов в 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 для другого элемента.

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

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

Для создания 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.13
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.13
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 раз, если счётчик больше 1.

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

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

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

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

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

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

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

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

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

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

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

SplitView.fillHeight : bool

Это прикреплённое свойство управляет тем, занимает ли элемент оставшееся пространство в split представлении после того, как все другие элементы были выложены.

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

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

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

SplitView.fillWidth : bool

Это прикреплённое свойство управляет тем, занимает ли элемент оставшееся пространство в split представлении после того, как все другие элементы были выложены.

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

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

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

SplitView.maximumHeight : real

Это прикреплённое свойство управляет максимальной высотой элемента split. preferredHeight ограничено значениями minimumHeight и maximumHeight. Элемент split не может быть изменён, чтобы быть больше, чем его 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.

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

Spec-Zone.ru

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