QGraphicsItemGroup Class
QGraphicsItemGroup 클래스는 여러 항목을 하나의 항목으로 취급하는 컨테이너를 제공합니다. 더 보기...
| 헤더: | #include <QGraphicsItemGroup> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 상속: | QGraphicsItem |
공개 유형
| enum { Type } |
공개 함수
| QGraphicsItemGroup(QGraphicsItem *parent = nullptr) | |
| virtual | ~QGraphicsItemGroup() |
| void | addToGroup(QGraphicsItem *item) |
| void | removeFromGroup(QGraphicsItem *item) |
재구현된 공용 함수
| virtual QRectF | boundingRect() const override |
| virtual bool | isObscuredBy(const QGraphicsItem *item) const override |
| virtual QPainterPath | opaqueArea() const override |
| virtual void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override |
| virtual int | type() const override |
상세 설명
QGraphicsItemGroup은 자체와 모든 자식 항목을 하나의 항목으로 취급하는 특수한 유형의 복합 항목입니다(즉, 모든 자식 항목에 대한 모든 이벤트와 기하 정보가 하나로 통합됩니다). 사용자가 여러 개의 작은 항목을 하나의 큰 항목으로 그룹화하여 항목의 이동 및 복사를 단순화하고자 할 때, 프레젠테이션 도구에서 항목 그룹을 사용하는 것이 일반적입니다.
단순히 항목을 다른 항목 안에 저장하기만 하고 싶다면, setParentItem()에 적절한 부모를 전달하여 어떤 QGraphicsItem 이든 직접 사용할 수 있습니다.
QGraphicsItemGroup의 boundingRect() 함수는 아이템 그룹에 포함된 모든 아이템의 경계 사각형을 반환합니다. QGraphicsItemGroup은 자식 항목의 ItemIgnoresTransformations 플래그를 무시합니다(즉, 그룹 항목의 기하학적 구조에 있어 자식 항목은 변환 가능한 것처럼 취급됩니다).
항목 그룹을 생성하는 방법에는 두 가지가 있습니다. 가장 쉽고 일반적인 방법은 항목 목록(예: 선택된 모든 항목)을 QGraphicsScene::createItemGroup()에 전달하는 것으로, 이 함수는 새로운 QGraphicsItemGroup 항목을 반환합니다. 다른 방법은 QGraphicsItemGroup 항목을 수동으로 생성하고, QGraphicsScene::addItem()를 호출하여 씬에 추가한 다음, addToGroup()를 호출하여 항목을 하나씩 수동으로 그룹에 추가하는 것입니다. 항목 그룹을 해체(“그룹 해제”)하려면 QGraphicsScene::destroyItemGroup()를 호출하거나, removeFromGroup()를 호출하여 그룹에서 모든 항목을 수동으로 제거할 수 있습니다.
// Group all selected items together
QGraphicsItemGroup *group = scene->createItemGroup(scene->selectedItems());
// Destroy the group, and delete the group item
scene->destroyItemGroup(group);항목을 추가하거나 제거하는 작업은 setParentItem()을 호출할 때와 달리, 항목의 씬 상대적 위치와 변환을 유지합니다. ()을 호출할 때는 자식 항목의 부모 상대적 위치와 변환만 유지됩니다.
addtoGroup() 함수는 대상 아이템을 이 아이템 그룹으로 부모를 재설정하면서, 씬에 상대적인 아이템의 위치와 변형을 그대로 유지합니다. 시각적으로 보면, 이는 addToGroup()를 통해 추가된 항목이 해당 항목이나 그룹의 현재 위치나 변환과 상관없이 이 작업의 결과로 전혀 변경되지 않음을 의미합니다. 단, 항목의 위치와 행렬은 변경될 가능성이 높습니다.
removeFromGroup() 함수는 setParentItem()과 유사한 의미를 가지며, 항목을 해당 아이템 그룹의 부모 항목으로 재설정합니다. addToGroup()과 마찬가지로, 항목의 씬 상대적 위치와 변환은 그대로 유지됩니다.
QGraphicsItem 및 그래픽스 뷰 프레임워크도 참조하십시오 .
멤버 함수 설명서
[explicit] QGraphicsItemGroup::QGraphicsItemGroup(QGraphicsItem *parent = nullptr)
QGraphicsItemGroup을 생성합니다. ` parent `는 ` QGraphicsItem`의 생성자에 전달됩니다.
QGraphicsScene::addItem()도 참조하십시오 .
[virtual noexcept] QGraphicsItemGroup::~QGraphicsItemGroup()
QGraphicsItemGroup 를 삭제합니다.
void QGraphicsItemGroup::addToGroup(QGraphicsItem *item)
지정된 item 과 해당 아이템의 하위 아이템들을 이 아이템 그룹에 추가합니다. 해당 아이템과 하위 아이템들은 이 그룹으로 부모가 재설정되지만, 씬을 기준으로 한 위치와 변형 정보는 그대로 유지됩니다.
removeFromGroup() 및 QGraphicsScene::createItemGroup()도 참조하십시오 .
[override virtual] QRectF QGraphicsItemGroup::boundingRect() const
QGraphicsItem::boundingRect() const를 재구현합니다.
이 그룹 항목과 그 모든 자식 항목의 경계 사각형을 반환합니다.
[override virtual] bool QGraphicsItemGroup::isObscuredBy(const QGraphicsItem *item) const
QGraphicsItem::isObscuredBy(const QGraphicsItem *item) const를 재구현합니다.
[override virtual] QPainterPath QGraphicsItemGroup::opaqueArea() const
QGraphicsItem::opaqueArea() const를 재구현합니다.
[override virtual] void QGraphicsItemGroup::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)를 재구현합니다.
void QGraphicsItemGroup::removeFromGroup(QGraphicsItem *item)
지정된 item 를 이 그룹에서 제거합니다. 해당 항목은 이 그룹의 상위 항목으로 다시 연결되거나, 이 그룹에 상위 항목이 없는 경우 0으로 재연결됩니다. 씬을 기준으로 한 해당 항목의 위치와 변형은 그대로 유지됩니다.
addToGroup() 및 QGraphicsScene::destroyItemGroup()도 참조하십시오 .
[override virtual] int QGraphicsItemGroup::type() const
QGraphicsItem::type() const를 재구현합니다.
© 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.