QGraphicsTransform Class
QGraphicsTransform 클래스는 QGraphicsItem에 대한 고급 변환을 구현하기 위한 추상 기본 클래스입니다. 더 보기...
| 헤더: | #include <QGraphicsTransform> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 상속: | QObject |
| 상속받는 항목: |
공개 함수
| QGraphicsTransform(QObject *parent = nullptr) | |
| virtual | ~QGraphicsTransform() |
| virtual void | applyTo(QMatrix4x4 *matrix) const = 0 |
보호된 슬롯
| void | update() |
상세 설명
QGraphicsItem::transform 의 대안으로, QGraphicsTransform을 사용하면 특수한 속성을 통해 독립적으로 구성할 수 있는 고급 변환을 생성하고 제어할 수 있습니다.
QGraphicsItem 을 사용하면 하나의 QGraphicsItem 에 임의의 개수의 QGraphicsTransform 인스턴스를 할당할 수 있습니다. 각 QGraphicsTransform 은 할당된 QGraphicsItem 에 순서대로 하나씩 적용됩니다.
QGraphicsTransform은 특히 애니메이션에 유용합니다. QGraphicsItem::setTransform()를 사용하면 항목에 변환을 직접 할당할 수 있지만, 두 가지 서로 다른 변환 사이를 보간하는 직접적인 방법은 없습니다(예: 항목에 각각 서로 다른 임의의 변환이 할당된 두 상태 간에 전환할 때). QGraphicsTransform을 사용하면 각 독립적인 변환의 속성 값을 보간할 수 있습니다. 그 결과로 얻어진 연산 결과는 하나의 변환으로 결합되어 QGraphicsItem 에 적용됩니다.
변환은 QMatrix4x4 를 사용하여 진정한 3D 공간에서 계산됩니다. 변환이 QGraphicsItem 에 적용되면, 2D QTransform 로 다시 투영됩니다. QGraphicsItem 에 여러 QGraphicsTransform 객체가 적용될 경우, 모든 변환은 실제 3D 공간에서 계산되며, 마지막 QGraphicsTransform이 적용된 후에야 2D로 다시 투영됩니다. 단, QGraphicsRotation 의 경우는 예외로, X축과 Y축을 중심으로 한 원근 효과를 유지하기 위해 각 회전 후마다 2D로 다시 투영합니다.
사용자 정의 가능한 변환을 만들려면 QGraphicsTransform(또는 기존 하위 클래스 중 하나)의 하위 클래스를 생성하고, QMatrix4x4 에 대한 포인터를 매개변수로 받는 순수 가상 함수 ` applyTo()`를 재구현하면 됩니다. 적용하고자 하는 각 연산은 속성(예: customTransform->setVerticalShear(2.5))으로 노출되어야 합니다. applyTo() 함수를 재구현할 때, 전달된 변환을 각각 수정할 수 있습니다.
QGraphicsTransform은 QGraphicsItem::setTransform(), QGraphicsItem::setRotation() 및 QGraphicsItem::setScale()과 함께 사용할 수 있습니다.
QGraphicsItem::transform(), QGraphicsScale 및 QGraphicsRotation도 참조하십시오 .
멤버 함수 문서
QGraphicsTransform::QGraphicsTransform(QObject *parent = nullptr)
주어진 parent 를 사용하여 새로운 QGraphicsTransform 객체를 생성합니다.
[virtual noexcept] QGraphicsTransform::~QGraphicsTransform()
그래픽 변환을 제거합니다.
[pure virtual] void QGraphicsTransform::applyTo(QMatrix4x4 *matrix) const
이 순수 가상 메서드는 파생 클래스에서 재구현해야 합니다.
이 메서드는 ` matrix`에 이 변환을 적용합니다.
QGraphicsItem::transform() 및 QMatrix4x4::toTransform()도 참조하십시오 .
[protected slot] void QGraphicsTransform::update()
이 변환 연산의 매개변수가 변경되어 applyTo()이 이전과 다른 결과를 반환하게 되었음을 알립니다.
사용자 정의 그래픽 변환을 구현할 때는 매개변수를 변경할 때마다 이 함수를 호출하여, QGraphicsItem 함수가 변환을 업데이트해야 함을 알리도록 해야 합니다.
applyTo()도 참조하십시오 .
© 2026 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.