Тип QML InnerShadow
Создает цветной и размытый оттенок внутри источника. Подробнее...
| Оператор импорта: | import QtGraphicalEffects 1.15 |
| С момента: | QtGraphicalEffects 1.0 |
| Наследует: |
Свойства
- cached : bool
- цвет : цвет
- fast : bool
- горизонтальноеСмещение : real
- радиус : real
- samples : int
- источник : variant
- распространение : real
- вертикальноеСмещение : real
Подробное описание
По умолчанию эффект создает высококачественное изображение тени, поэтому скорость отрисовки тени может быть не самой высокой. Скорость отрисовки снижается особенно, если края тени сильно смягчены. В тех случаях, когда требуется более высокая скорость отрисовки, а максимальное качество изображения не является необходимым, свойство fast можно установить в true.
| Источник | Примененный эффект |
|---|---|
Примечание: Этот эффект доступен при работе с OpenGL.
Пример
Следующий пример показывает, как применить эффект.
import QtQuick 2.12
import QtGraphicalEffects 1.12
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 |
| samples: 24 | samples: 24 | samples: 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 | |
| samples: 24 | samples: 24 | |
| цвет: #000000 | цвет: #000000 | |
| горизонтальноеСмещение: 0 | горизонтальноеСмещение: 0 | |
| вертикальноеСмещение: 0 | вертикальноеСмещение: 0 | |
| распространение: 0.2 | распространение: 0.2 |
горизонтальноеСмещение : real
Свойства горизонтальногоСмещения и вертикальногоСмещения определяют смещение рендерной тени по отношению к позиции элемента InnerShadow. Часто элемент InnerShadow закреплен таким образом, что заполняет элемент источника. В этом случае, если свойства горизонтальногоСмещения и вертикальногоСмещения установлены в 0, тень рендерится полностью внутри элемента источника. Изменяя свойства смещения, тень можно разместить относительно элемента источника.
Значения изменяются от -inf до inf. По умолчанию свойства установлены в 0.
| Примеры вывода с различными значениями горизонтальногоСмещения | ||
|---|---|---|
| горизонтальноеСмещение: -20 | горизонтальноеСмещение: 0 | горизонтальноеСмещение: 20 |
| радиус: 16 | радиус: 16 | радиус: 16 |
| samples: 24 | samples: 24 | samples: 24 |
| цвет: #000000 | цвет: #000000 | цвет: #000000 |
| вертикальноеСмещение: 0 | вертикальноеСмещение: 0 | вертикальноеСмещение: 0 |
| распространение: 0 | распространение: 0 | распространение: 0 |
радиус : real
Радиус определяет мягкость тени. Более большой радиус приводит к более размытым краям тени.
В зависимости от значения радиуса, значение samples должно быть достаточно большим, чтобы обеспечить качество изображения.
Значения изменяются от 0,0 (без размытия) до inf. По умолчанию свойство установлено в 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.
| Примеры вывода с различными значениями spread | ||
|---|---|---|
| spread: 0,0 | spread: 0,3 | spread: 0,5 |
| радиус: 16 | радиус: 16 | радиус: 16 |
| samples: 24 | samples: 24 | samples: 24 |
| цвет: #000000 | цвет: #000000 | цвет: #000000 |
| горизонтальныйСмещение: 0 | горизонтальныйСмещение: 0 | горизонтальныйСмещение: 0 |
| вертикальноеСмещение: 0 | вертикальноеСмещение: 0 | вертикальноеСмещение: 0 |
verticalOffset : real
Свойства horizontalOffset и verticalOffset определяют смещение отрисованной тени по сравнению с положением элемента InnerShadow. Часто элемент InnerShadow закреплен таким образом, что заполняет элемент-источник. В этом случае, если свойства horizontalOffset и verticalOffset установлены в 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.15/qml-qtgraphicaleffects-innershadow.html