QVariantAnimation Class
QVariantAnimation 클래스는 애니메이션을 위한 베이스 클래스를 제공합니다. 더 보기...
Header: | #include <QVariantAnimation> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
상속합니다: | QAbstractAnimation |
상속 대상: |
- 상속된 멤버를 포함한 모든 멤버 목록
- QVariantAnimation은 애니메이션 프레임워크의 일부입니다.
공용 유형
속성
|
|
공공 기능
QVariantAnimation(QObject *parent = nullptr) | |
virtual | ~QVariantAnimation() |
QBindable<int> | bindableDuration() |
QBindable<QEasingCurve> | bindableEasingCurve() |
QVariant | currentValue() const |
QEasingCurve | easingCurve() const |
QVariant | endValue() const |
QVariant | keyValueAt(qreal step) const |
QVariantAnimation::KeyValues | keyValues() const |
void | setDuration(int msecs) |
void | setEasingCurve(const QEasingCurve &easing) |
void | setEndValue(const QVariant &value) |
void | setKeyValueAt(qreal step, const QVariant &value) |
void | setKeyValues(const QVariantAnimation::KeyValues &keyValues) |
void | setStartValue(const QVariant &value) |
QVariant | startValue() const |
재구현된 공용 함수
virtual int | duration() const override |
신호
void | valueChanged(const QVariant &value) |
보호되는 기능
virtual QVariant | interpolated(const QVariant &from, const QVariant &to, qreal progress) const |
virtual void | updateCurrentValue(const QVariant &value) |
재구현된 보호 기능
virtual bool | event(QEvent *event) override |
virtual void | updateCurrentTime(int) override |
virtual void | updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) override |
관련 비회원
void | qRegisterAnimationInterpolator(QVariant (*)(const T &, const T &, qreal) func) |
상세 설명
이 클래스는 애니메이션 프레임워크의 일부입니다. 프로퍼티 및 아이템 애니메이션의 베이스 클래스 역할을 하며, 공유 기능을 위한 함수가 있습니다.
이 클래스는 QVariant에 대한 보간을 수행하지만 보간된 값의 사용은 하위 클래스에 맡깁니다. 현재 Qt는 Qt 프로퍼티를 애니메이션화하는 QPropertyAnimation 를 제공합니다. 이러한 프로퍼티에 애니메이션을 적용하려면 QPropertyAnimation 클래스 설명을 참조하십시오.
그런 다음 setStartValue() 및 setEndValue()을 호출하여 속성의 시작 및 종료 값을 설정하고 마지막으로 start()을 호출하여 애니메이션을 시작할 수 있습니다. QVariantAnimation은 대상 객체의 프로퍼티를 보간하고 valueChanged()를 방출합니다. 현재 값의 변화에 반응하려면 updateCurrentValue() 가상 함수를 다시 구현하거나 해당 신호에 연결해야 합니다.
시작 값과 끝 값 사이에 위치한 지정된 단계에 값을 설정할 수도 있습니다. 그러면 보간이 지정된 단계에서 이러한 지점에 닿게 됩니다. 시작 값과 끝 값은 0.0과 1.0의 키 값으로 정의된다는 점에 유의하세요.
QVariantAnimation이 값을 보간하는 방식에는 두 가지 방법이 있습니다. setEasingCurve ()를 호출하여 완화 곡선을 설정하고 setDuration()를 호출하여 지속 시간을 구성할 수 있습니다. QVariantAnimation의 서브클래스를 생성하고 가상 interpolated() 함수를 다시 구현하여 QVariant의 보간 방법을 변경할 수 있습니다.
Qt 프로퍼티로 선언하지 않으려는 QVariants가 있는 경우 QVariantAnimation을 서브클래싱하는 것이 대안이 될 수 있습니다. 그러나 대부분의 경우 QVariant 을 프로퍼티로 선언하는 것이 더 좋습니다.
모든 QVariant 유형이 지원되는 것은 아닙니다. 아래는 현재 지원되는 QVariant 유형 목록입니다:
사용자 정의 유형을 포함하여 다른 변형 유형을 보간해야 하는 경우에는 직접 보간을 구현해야 합니다. 이를 위해 주어진 유형에 대한 보간 함수를 등록할 수 있습니다. 이 함수에는 시작 값, 끝 값, 현재 진행률의 세 가지 매개 변수가 필요합니다.
예시:
QVariant myColorInterpolator(const QColor &start, const QColor&end, qreal progress) { ... return QColor(...); } ... qRegisterAnimationInterpolator<QColor>(myColorInterpolator);
또 다른 옵션은 보간할 값에 대한 보간 값을 반환하는 interpolated()를 다시 구현하는 것입니다.
QPropertyAnimation, QAbstractAnimation, 애니메이션 프레임워크도참조하세요 .
멤버 유형 문서
[alias]
QVariantAnimation::KeyValue
이것은 std::pair<qreal, QVariant>에 대한 typedef입니다.
QVariantAnimation::KeyValues
속성 문서
[read-only]
currentValue : const QVariant
이 속성은 애니메이션의 현재 값을 보유합니다.
이 속성은 현재 진행 시간을 사용하여 start value 와 end value 사이의 보간된 값인 현재 값을 설명합니다. 값 자체는 애니메이션이 실행되는 동안 반복적으로 호출되는 interpolated()에서 가져옵니다.
QVariantAnimation 현재 값이 변경되면 가상 updateCurrentValue() 함수를 호출합니다. 이 함수는 업데이트를 추적해야 하는 서브클래스에 특히 유용합니다. 예를 들어 QPropertyAnimation 은 이 함수를 사용하여 Qt XML 프로퍼티에 애니메이션을 적용합니다.
함수 접근하기:
QVariant | currentValue() const |
알림 신호:
void | valueChanged(const QVariant &value) |
startValue 및 endValue 을참조하십시오 .
[bindable]
duration : int
참고: 이 속성은 QProperty 바인딩을 지원합니다.
이 속성은 애니메이션의 지속 시간을 보유합니다.
이 속성은 애니메이션의 지속 시간을 밀리초 단위로 설명합니다. 기본 지속 시간은 250밀리초입니다.
QAbstractAnimation::duration()도 참조하세요 .
[bindable]
easingCurve : QEasingCurve
참고: 이 프로퍼티는 QProperty 바인딩을 지원합니다.
이 속성은 애니메이션의 완화 곡선을 보유합니다.
이 속성은 애니메이션의 완화 곡선을 정의합니다. 기본적으로 선형 완화 커브가 사용되어 선형 보간이 이루어집니다. 예를 들어 원형 진입 커브를 제공하는 QEasingCurve::InCirc 와 같은 다른 커브가 제공됩니다. 또 다른 예로는 보간된 변형의 값에 탄력 효과를 제공하는 QEasingCurve::InOutElastic 이 있습니다.
QVariantAnimation 는 QEasingCurve::valueForProgress()를 사용하여 애니메이션의 "정규화된 진행률"(currentTime / totalDuration)을 애니메이션이 실제로 사용하는 유효 진행률로 변환합니다. 이 유효 진행률이 interpolated()가 호출될 때의 진행률이 됩니다. 또한 keyValues 의 단계는 이 유효 진행률을 참조합니다.
완화 곡선은 보간기, interpolated() 가상 함수 및 애니메이션의 지속 시간과 함께 사용되어 애니메이션이 진행됨에 따라 현재 값이 변경되는 방식을 제어합니다.
endValue : QVariant
이 속성은 애니메이션의 끝값을 저장합니다.
이 속성은 애니메이션의 끝값을 설명합니다.
함수에 액세스합니다:
QVariant | endValue() const |
void | setEndValue(const QVariant &value) |
startValue 를참조하세요 .
startValue : QVariant
이 속성은 애니메이션의 선택적 시작 값을 보유합니다.
이 속성은 애니메이션의 선택적 시작 값을 설명합니다. 생략하거나 null QVariant 을 시작 값으로 지정하면 애니메이션이 시작될 때 애니메이션의 현재 끝 위치가 사용됩니다.
함수에 액세스합니다:
QVariant | startValue() const |
void | setStartValue(const QVariant &value) |
endValue 를참조하세요 .
멤버 함수 문서
QVariantAnimation::QVariantAnimation(QObject *parent = nullptr)
QAbstractAnimation 의 생성자에 parent 을 전달합니다.
[virtual noexcept]
QVariantAnimation::~QVariantAnimation()
애니메이션을 파괴합니다.
[override virtual protected]
bool QVariantAnimation::event(QEvent *event)
다시 구현합니다: QAbstractAnimation::event(QEvent * 이벤트).
[virtual protected]
QVariant QVariantAnimation::interpolated(const QVariant &from, const QVariant &to, qreal progress) const
이 가상 함수는 from 과 to 사이의 선형 보간을 progress 에서 일반적으로 0에서 1 사이의 값으로 반환합니다. 이 함수를 QVariantAnimation 의 서브클래스에서 다시 구현하여 자체 보간 알고리즘을 제공할 수 있습니다.
보간이 0보다 작거나 1보다 큰 값을 반환하는 QEasingCurve (예: QEasingCurve::InBack)에서 작동하려면 보간이 외삽할 수 있는지 확인해야 합니다. 데이터 타입의 시맨틱이 외삽을 허용하지 않는 경우 이 함수는 이를 우아하게 처리해야 합니다.
Qt에서 이미 지원되는 형을 처리하려면 이 함수의 QVariantAnimation 구현을 호출해야 합니다 (지원되는 형 목록은 클래스 QVariantAnimation 설명을 참조하십시오).
QEasingCurve도 참조하십시오 .
QVariant QVariantAnimation::keyValueAt(qreal step) const
주어진 step 에 대한 키 프레임 값을 반환합니다. 주어진 step 은 0에서 1 범위여야 합니다. step 에 KeyValue 이 없으면 유효하지 않은 QVariant 을 반환합니다.
keyValues() 및 setKeyValueAt()도 참조하세요 .
QVariantAnimation::KeyValues QVariantAnimation::keyValues() const
이 애니메이션의 키 프레임을 반환합니다.
keyValueAt() 및 setKeyValues()도 참조하세요 .
void QVariantAnimation::setKeyValueAt(qreal step, const QVariant &value)
주어진 value 을 사용하여 주어진 step 에 키 프레임을 생성합니다. 주어진 step 은 0에서 1 범위여야 합니다.
setKeyValues() 및 keyValueAt()도 참조하세요 .
void QVariantAnimation::setKeyValues(const QVariantAnimation::KeyValues &keyValues)
현재 키 프레임 집합을 주어진 keyValues 으로 바꿉니다. 키 프레임의 단계는 0에서 1 범위여야 합니다.
keyValues() 및 keyValueAt()도 참조하세요 .
[override virtual protected]
void QVariantAnimation::updateCurrentTime(int)
재구현합니다: QAbstractAnimation::updateCurrentTime(int currentTime).
[virtual protected]
void QVariantAnimation::updateCurrentValue(const QVariant &value)
이 가상 함수는 애니메이션의 현재 값이 변경될 때마다 호출됩니다. value 인수는 새로운 현재 값입니다.
기본 클래스 구현은 아무 작업도 수행하지 않습니다.
currentValue 를참조하십시오 .
[override virtual protected]
void QVariantAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
재구현합니다: QAbstractAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState).
[signal]
void QVariantAnimation::valueChanged(const QVariant &value)
QVariantAnimation 는 현재 value 가 변경될 때마다 이 신호를 보냅니다.
참고: 속성에 대한 알림 신호 currentValue.
currentValue, startValue, endValue도 참조하세요 .
관련 비회원
template <typename T> void qRegisterAnimationInterpolator(QVariant (*)(const T &, const T &, qreal) func)
템플릿 유형 T
에 대한 사용자 지정 보간기 func 를 등록합니다. 보간기는 애니메이션을 만들기 전에 등록해야 합니다. 등록을 취소하고 기본 보간기를 사용하려면 func 을 nullptr
으로 설정합니다.
참고: 이 함수는 스레드에 안전합니다.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.