Тип QML InnerShadow
Создаёт цветной и размытый оттенок внутри источника. Подробнее...
| Оператор импорта: | import QtGraphicalEffects 1.13 |
| С тех пор: | 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.
| Примеры выходных данных с разными значениями быстрого режима | ||
|---|---|---|
| быстрый: false | быстрый: true | |
| радиус: 16 | радиус: 16 | |
| образцы: 24 | образцы: 24 | |
| цвет: #000000 | цвет: #000000 | |
| горизонтальноеСмещение: 0 | горизонтальноеСмещение: 0 | |
| вертикальноеСмещение: 0 | вертикальноеСмещение: 0 | |
| распространение: 0.2 | распространение: 0.2 |
горизонтальноеСмещение : real
Свойства горизонтальноеСмещение и вертикальноеСмещение определяют смещение для рендерируемого оттенка по отношению к положению элемента InnerShadow. Часто элемент InnerShadow закрепляется таким образом, чтобы заполнить элемент-источник. В этом случае, если свойства горизонтальноеСмещение и вертикальноеСмещение установлены в 0, оттенок рендерится полностью внутри элемента-источника. Изменяя свойства смещения, оттенок можно позиционировать относительно элемента-источника.
Значения варьируются от -бесконечности до бесконечности. По умолчанию свойства установлены в 0.
| Примеры выходных данных с разными значениями горизонтальногоСмещения | ||
|---|---|---|
| горизонтальноеСмещение: -20 | горизонтальноеСмещение: 0 | горизонтальноеСмещение: 20 |
| радиус: 16 | радиус: 16 | радиус: 16 |
| образцы: 24 | образцы: 24 | образцы: 24 |
| цвет: #000000 | цвет: #000000 | цвет: #000000 |
| вертикальноеСмещение: 0 | вертикальноеСмещение: 0 | вертикальноеСмещение: 0 |
| распространение: 0 | распространение: 0 | распространение: 0 |
радиус : real
Радиус определяет мягкость оттенка. Более большой радиус приводит к тому, что края оттенка выглядят более размытыми.
В зависимости от значения радиуса, значение образцов должно быть достаточно большим, чтобы гарантировать качество изображения.
Значение варьируется от 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.
| Примеры вывода с различными значениями 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.13/qml-qtgraphicaleffects-innershadow.html