Spec-Zone.ru › Qt 5.9

Тип InnerShadow QML

Создаёт цветную и размытую тень внутри источника. Подробнее...

Заявление импорта: import QtGraphicalEffects 1.0
С тех пор как: QtGraphicalEffects 1.0
Наследует:

Элемент

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

Свойства

  • cached : bool
  • цвет : цвет
  • fast : bool
  • горизонтальноеСмещение : вещественное
  • радиус : вещественное
  • образцы : целое
  • источник : переменная
  • распространение : вещественное
  • вертикальноеСмещение : вещественное

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

По умолчанию эффект создаёт изображение тени высокого качества, поэтому скорость отрисовки тени может быть не самой высокой. Скорость отрисовки снижается особенно, если края тени сильно размыты. Для случаев, когда требуется более высокая скорость отрисовки, и не требуется наилучшее качество изображения, свойство fast можно установить в значение true.

Источник Применённый эффект

Примечание: Этот эффект доступен при работе с OpenGL.

Пример

Следующий пример показывает, как применить эффект.

import QtQuick 2.0
import QtGraphicalEffects 1.0

Item {
    width: 300
    height: 300

    Rectangle {
        anchors.fill: parent
    }

    Image {
        id: butterfly
        source: "images/butterfly.png"
        sourceSize: Qt.size(parent.width, parent.height)
        smooth: true
        visible: false
    }

    InnerShadow {
        anchors.fill: butterfly
        radius: 8.0
        samples: 16
        horizontalOffset: -3
        verticalOffset: 3
        color: "#b0000000"
        source: butterfly
    }
}

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

cached : bool

Это свойство позволяет кэшировать пиксели вывода эффекта для повышения производительности отрисовки. Каждый раз при изменении источника или свойств эффекта пиксели в кэше должны быть обновлены. Потребление памяти увеличивается, потому что для хранения вывода эффекта требуется дополнительный буфер памяти.

Рекомендуется отключить кэш при анимации источника или свойств эффекта.

По умолчанию свойство установлено в false.

цвет : цвет

Это свойство определяет значение цвета RGBA, используемое для тени.

По умолчанию свойство установлено в "black".

Примеры вывода с различными значениями цвета

цвет: #000000 цвет: #ffffff цвет: #ff0000
радиус: 16 радиус: 16 радиус: 16
образцы: 24 образцы: 24 образцы: 24
горизонтальноеСмещение: 0 горизонтальноеСмещение: 0 горизонтальноеСмещение: 0
вертикальноеСмещение: 0 вертикальноеСмещение: 0 вертикальноеСмещение: 0
распространение: 0.2 распространение: 0.2 распространение: 0.2

fast : bool

Это свойство выбирает алгоритм размытия, используемый для создания эффекта размытия. Установка значения true включает быстрый алгоритм, установка значения false даёт результат более высокого качества.

По умолчанию свойство установлено в false.

Примеры вывода с различными значениями fast

fast: false fast: true
радиус: 16 радиус: 16
образцы: 24 образцы: 24
цвет: #000000 цвет: #000000
горизонтальноеСмещение: 0 горизонтальноеСмещение: 0
вертикальноеСмещение: 0 вертикальноеСмещение: 0
распространение: 0.2 распространение: 0.2

горизонтальноеСмещение : вещественное

Свойства HorizontalOffset и вертикальноеСмещение определяют смещение отрисованной тени относительно положения элемента InnerShadow. Часто элемент InnerShadow закреплён таким образом, что заполняет элемент источника. В этом случае, если свойства HorizontalOffset и вертикальноеСмещение установлены в 0, тень отрисовывается полностью внутри элемента источника. Изменяя свойства смещения, тень можно позиционировать относительно элемента источника.

Значения варьируются от -inf до inf. По умолчанию свойства установлены в 0.

Примеры вывода с различными значениями horizontalOffset

горизонтальноеСмещение: -20 горизонтальноеСмещение: 0 горизонтальноеСмещение: 20
радиус: 16 радиус: 16 радиус: 16
образцы: 24 образцы: 24 образцы: 24
цвет: #000000 цвет: #000000 цвет: #000000
вертикальноеСмещение: 0 вертикальноеСмещение: 0 вертикальноеСмещение: 0
распространение: 0 распространение: 0 распространение: 0

радиус : вещественное

Радиус определяет размытие тени. Больший радиус приводит к более размытым краям тени.

В зависимости от значения радиуса, значение образцы следует установить достаточно большим, чтобы обеспечить качество изображения.

Значение колеблется от 0,0 (нет размытия) до бесконечности. По умолчанию свойство установлено в 0.0 (нет размытия).

Примеры вывода с различными значениями радиуса

радиус: 0 радиус: 6 радиус: 12
samples: 24 samples: 24 samples: 24
цвет: #000000 цвет: #000000 цвет: #000000
горизонтальноеСмещение: 0 горизонтальноеСмещение: 0 горизонтальноеСмещение: 0
вертикальноеСмещение: 0 вертикальноеСмещение: 0 вертикальноеСмещение: 0
распространение: 0 распространение: 0 распространение: 0

samples : int

Это свойство определяет, сколько образцов берётся на пиксель при расчёте размытия по краям. Большее значение обеспечивает лучшее качество, но приводит к более медленной отрисовке.

В идеале это значение должно быть вдвое больше, чем наибольшее необходимое значение радиуса, например, если радиус анимируется между 0,0 и 4,0, samples следует установить в 8.

Значение может изменяться от 0 до 32. По умолчанию свойство установлено в 0.

Это свойство не предназначено для анимации. Изменение этого свойства может привести к перекомпиляции базовых шейдеров OpenGL.

Когда свойство fast установлено в true, это свойство не имеет эффекта.

source : variant

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

Примечание: Не допускается включение эффекта в себя, например, установкой source на родителя эффекта.

spread : real

Это свойство определяет, насколько большая часть цвета тени усиливается вблизи границ источника.

Значение находится в диапазоне от 0,0 до 1,0. По умолчанию свойство установлено в 0.5.

Примеры вывода с различными значениями распространения

распространение: 0,0 распространение: 0,3 распространение: 0,5
радиус: 16 радиус: 16 радиус: 16
samples: 24 samples: 24 samples: 24
цвет: #000000 цвет: #000000 цвет: #000000
горизонтальноеСмещение: 0 горизонтальноеСмещение: 0 горизонтальноеСмещение: 0
вертикальноеСмещение: 0 вертикальноеСмещение: 0 вертикальноеСмещение: 0

verticalOffset : real

Свойства горизонтальноеСмещение и вертикальноеСмещение определяют смещение отрисованной тени по отношению к положению элемента InnerShadow. Часто элемент InnerShadow закрепляется так, чтобы заполнить элемент-источник. В этом случае, если свойства горизонтальноеСмещение и вертикальноеСмещение установлены в 0, тень отрисовывается полностью внутри элемента-источника. Изменяя свойства смещения, тень можно разместить относительно элемента-источника.

Значения изменяются от -∞ до +∞. По умолчанию свойства установлены в 0.

Примеры вывода с различными значениями горизонтальногоСмещения

горизонтальноеСмещение: -20 горизонтальноеСмещение: 0 горизонтальноеСмещение: 20
радиус: 16 радиус: 16 радиус: 16
samples: 24 samples: 24 samples: 24
цвет: #000000 цвет: #000000 цвет: #000000
вертикальноеСмещение: 0 вертикальноеСмещение: 0 вертикальноеСмещение: 0
распространение: 0 распространение: 0 распространение: 0

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qml-qtgraphicaleffects-innershadow.html

Spec-Zone.ru

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