Тип QML InnerShadow
Генерирует цветной и размытый оттенок внутри источника. Подробнее...
| Заявление об импорте: | import QtGraphicalEffects 1.12 |
| С тех пор: | QtGraphicalEffects 1.0 |
| Наследует: |
Свойства
- cached : bool
- цвет : цвет
- быстрый : bool
- горизонтальный сдвиг : real
- радиус : real
- образцы : int
- источник : variant
- распространение : real
- вертикальный сдвиг : real
Подробное описание
По умолчанию эффект создаёт изображение высокой чёткости, поэтому скорость отрисовки теней может не быть максимально возможной. Скорость отрисовки снижается, особенно если края тени сильно размыты. В случаях, когда требуется более высокая скорость отрисовки, а высокое качество изображения не является необходимым, свойство быстрый можно установить в значение 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 |
| образцы: 24 | образцы: 24 | образцы: 24 |
| горизонтальный сдвиг: 0 | горизонтальный сдвиг: 0 | горизонтальный сдвиг: 0 |
| вертикальный сдвиг: 0 | вертикальный сдвиг: 0 | вертикальный сдвиг: 0 |
| распространение: 0.2 | распространение: 0.2 | распространение: 0.2 |
быстрый : bool
Это свойство выбирает алгоритм размытия, который используется для придания мягкости эффекту. Установка значения true включает быстрый алгоритм, установка значения false приводит к получению результата более высокого качества.
По умолчанию свойство установлено в значение false.
| Примеры вывода с разными значениями fast | ||
|---|---|---|
| быстрый: false | быстрый: true | |
| радиус: 16 | радиус: 16 | |
| образцы: 24 | образцы: 24 | |
| цвет: #000000 | цвет: #000000 | |
| горизонтальный сдвиг: 0 | горизонтальный сдвиг: 0 | |
| вертикальный сдвиг: 0 | вертикальный сдвиг: 0 | |
| распространение: 0.2 | распространение: 0.2 |
горизонтальный сдвиг : real
Свойства HorizontalOffset и вертикальный сдвиг определяют сдвиг отрисованной тени по сравнению с позицией элемента InnerShadow. Часто элемент InnerShadow закрепляется так, что он заполняет элемент-источник. В этом случае, если свойства HorizontalOffset и вертикальный сдвиг установлены в 0, тень отрисовывается полностью внутри элемента-источника. Изменяя свойства смещения, тень можно позиционировать относительно элемента-источника.
Значения изменяются от -inf до inf. По умолчанию свойства установлены в значение 0.
| Примеры вывода с разными значениями горизонтального сдвига | ||
|---|---|---|
| горизонтальный сдвиг: -20 | горизонтальный сдвиг: 0 | горизонтальный сдвиг: 20 |
| радиус: 16 | радиус: 16 | радиус: 16 |
| образцы: 24 | образцы: 24 | образцы: 24 |
| цвет: #000000 | цвет: #000000 | цвет: #000000 |
| вертикальный сдвиг: 0 | вертикальный сдвиг: 0 | вертикальный сдвиг: 0 |
| распространение: 0 | распространение: 0 | распространение: 0 |
радиус : real
Радиус определяет мягкость тени. Больший радиус приводит к более размытым краям тени.
В зависимости от значения радиуса, значение образцов должно быть достаточно большим, чтобы обеспечить качество изображения.
Значение изменяется от 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.12/qml-qtgraphicaleffects-innershadow.html