Тип QML InnerShadow
Создаёт цветной и размытый оттенок внутри источника. Подробнее...
| Заявление импорта: | import QtGraphicalEffects 1.0 |
| С версии: | QtGraphicalEffects 1.0 |
| Наследует: |
Свойства
- cached : bool
- цвет : цвет
- быстро : bool
- горизонтальноеСмещение : real
- радиус : real
- образцы : int
- источник : variant
- распространение : real
- вертикальноеСмещение : real
Подробное описание
По умолчанию эффект создаёт изображение теней высокого качества, поэтому скорость рендеринга теней может быть не самой высокой. Скорость рендеринга уменьшается особенно если края тени сильно смягчены. В тех случаях, когда требуется более высокая скорость рендеринга, а высочайшее качество изображения не является обязательным, свойство быстро можно установить в значение true.
| Источник | Применённый эффект |
|---|---|
Пример
Следующий пример демонстрирует, как применить эффект.
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 |
быстро : bool
Это свойство выбирает алгоритм размытия, используемый для создания мягкости эффекта. Установка значения true включает быстрый алгоритм, установка значения false даёт результат более высокого качества.
По умолчанию свойство установлено в false.
| Примеры вывода с различными значениями быстро | ||
|---|---|---|
| быстро: false | быстро: true | |
| радиус: 16 | радиус: 16 | |
| образцы: 24 | образцы: 24 | |
| цвет: #000000 | цвет: #000000 | |
| горизонтальноеСмещение: 0 | горизонтальноеСмещение: 0 | |
| вертикальноеСмещение: 0 | вертикальноеСмещение: 0 | |
| распространение: 0.2 | распространение: 0.2 |
горизонтальноеСмещение : real
Свойства горизонтальноеСмещение и вертикальноеСмещение определяют смещение отрисованной тени по сравнению с положением элемента InnerShadow. Часто элемент InnerShadow закреплён таким образом, что он заполняет элемент-источник. В этом случае, если свойства горизонтальноеСмещение и вертикальноеСмещение установлены в 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.
| Примеры вывода с различными значениями распространения | ||
|---|---|---|
| распространение: 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
Свойства HorizontalOffset и verticalOffset определяют смещение для отрисованной тени относительно положения элемента InnerShadow. Часто элемент InnerShadow закреплен так, чтобы заполнять элемент-источник. В этом случае, если свойства HorizontalOffset и verticalOffset установлены в 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 |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qml-qtgraphicaleffects-innershadow.html