이 페이지에서

QQuickItem Class

QQuickItem 클래스는 모든 시각적 항목 중에서 가장 기본적인 기능을 제공합니다 Qt Quick. 더 보기...

헤더: #include <QQuickItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
QML에서: Item
상속:QObject 그리고 QQmlParserStatus
상속받는 클래스:

QQuickFramebufferObject, QQuickPaintedItem, 그리고 QQuickRhiItem

공개 유형

union ItemChangeData
enum Flag { ItemClipsChildrenToShape, ItemAcceptsInputMethod, ItemIsFocusScope, ItemHasContents, ItemAcceptsDrops, …, ItemObservesViewport }
flags Flags
enum ItemChange { ItemChildAddedChange, ItemChildRemovedChange, ItemSceneChange, ItemVisibleHasChanged, ItemParentHasChanged, …, ItemTransformHasChanged }
(since 6.12) enum MutabilityGroup { AutoMutabilityGroup, StaticMutabilityGroup, ModerateMutabilityGroup, DynamicMutabilityGroup }
enum TransformOrigin { TopLeft, Top, TopRight, Left, Center, …, BottomRight }

속성

공개 함수

QQuickItem(QQuickItem *parent = nullptr)
virtual ~QQuickItem() override
bool acceptHoverEvents() const
bool acceptTouchEvents() const
Qt::MouseButtons acceptedMouseButtons() const
bool activeFocusOnTab() const
bool antialiasing() const
qreal baselineOffset() const
QBindable<qreal> bindableHeight()
QBindable<qreal> bindableWidth()
QBindable<qreal> bindableX()
QBindable<qreal> bindableY()
virtual QRectF boundingRect() const
QQuickItem *childAt(qreal x, qreal y) const
QList<QQuickItem *> childItems() const
QRectF childrenRect()
bool clip() const
virtual QRectF clipRect() const
QObject *containmentMask() const
virtual bool contains(const QPointF &point) const
QCursor cursor() const
(since 6.3) void dumpItemTree() const
(since 6.3) void ensurePolished()
bool filtersChildMouseEvents() const
QQuickItem::Flags flags() const
Qt::FocusPolicy focusPolicy() const
void forceActiveFocus()
void forceActiveFocus(Qt::FocusReason reason)
QSharedPointer<QQuickItemGrabResult> grabToImage(const QSize &targetSize = QSize())
bool hasActiveFocus() const
bool hasFocus() const
qreal height() const
qreal implicitHeight() const
qreal implicitWidth() const
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const
bool isAncestorOf(const QQuickItem *child) const
bool isEnabled() const
bool isFocusScope() const
virtual bool isTextureProvider() const
bool isVisible() const
bool keepMouseGrab() const
bool keepTouchGrab() const
QPointF mapFromGlobal(const QPointF &point) const
QPointF mapFromItem(const QQuickItem *item, const QPointF &point) const
QPointF mapFromScene(const QPointF &point) const
QRectF mapRectFromItem(const QQuickItem *item, const QRectF &rect) const
QRectF mapRectFromScene(const QRectF &rect) const
QRectF mapRectToItem(const QQuickItem *item, const QRectF &rect) const
QRectF mapRectToScene(const QRectF &rect) const
QPointF mapToGlobal(const QPointF &point) const
QPointF mapToItem(const QQuickItem *item, const QPointF &point) const
QPointF mapToScene(const QPointF &point) const
int mutabilityGroup() const
QQuickItem *nextItemInFocusChain(bool forward = true)
qreal opacity() const
QQuickItem *parentItem() const
void polish()
void resetAntialiasing()
void resetHeight()
void resetWidth()
qreal rotation() const
qreal scale() const
QQuickItem *scopedFocusItem() const
void setAcceptHoverEvents(bool enabled)
void setAcceptTouchEvents(bool enabled)
void setAcceptedMouseButtons(Qt::MouseButtons buttons)
void setActiveFocusOnTab(bool)
void setAntialiasing(bool)
void setBaselineOffset(qreal)
void setClip(bool)
void setContainmentMask(QObject *mask)
void setCursor(const QCursor &cursor)
void setEnabled(bool)
void setFiltersChildMouseEvents(bool filter)
void setFlag(QQuickItem::Flag flag, bool enabled = true)
void setFlags(QQuickItem::Flags flags)
void setFocus(bool)
void setFocus(bool focus, Qt::FocusReason reason)
void setFocusPolicy(Qt::FocusPolicy policy)
void setHeight(qreal)
void setImplicitHeight(qreal)
void setImplicitWidth(qreal)
void setKeepMouseGrab(bool keep)
void setKeepTouchGrab(bool keep)
void setMutabilityGroup(int mutabilityGroup)
void setOpacity(qreal)
void setParentItem(QQuickItem *parent)
void setRotation(qreal)
void setScale(qreal)
void setSize(const QSizeF &size)
void setSmooth(bool)
void setState(const QString &)
void setTransformOrigin(QQuickItem::TransformOrigin)
void setVisible(bool)
void setWidth(qreal)
void setX(qreal)
void setY(qreal)
void setZ(qreal)
QSizeF size() const
bool smooth() const
void stackAfter(const QQuickItem *sibling)
void stackBefore(const QQuickItem *sibling)
QString state() const
virtual QSGTextureProvider *textureProvider() const
QQuickItem::TransformOrigin transformOrigin() const
void unsetCursor()
QQuickItem *viewportItem() const
qreal width() const
QQuickWindow *window() const
qreal x() const
qreal y() const
qreal z() const

공개 슬롯

void update()

신호

void containmentMaskChanged()
void windowChanged(QQuickWindow *window)

보호된 함수

virtual bool childMouseEventFilter(QQuickItem *item, QEvent *event)
virtual void dragEnterEvent(QDragEnterEvent *event)
virtual void dragLeaveEvent(QDragLeaveEvent *event)
virtual void dragMoveEvent(QDragMoveEvent *event)
virtual void dropEvent(QDropEvent *event)
virtual void focusInEvent(QFocusEvent *event)
virtual void focusOutEvent(QFocusEvent *event)
(since 6.0) virtual void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
bool heightValid() const
virtual void hoverEnterEvent(QHoverEvent *event)
virtual void hoverLeaveEvent(QHoverEvent *event)
virtual void hoverMoveEvent(QHoverEvent *event)
virtual void inputMethodEvent(QInputMethodEvent *event)
bool isComponentComplete() const
virtual void itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value)
virtual void keyPressEvent(QKeyEvent *event)
virtual void keyReleaseEvent(QKeyEvent *event)
virtual void mouseDoubleClickEvent(QMouseEvent *event)
virtual void mouseMoveEvent(QMouseEvent *event)
virtual void mousePressEvent(QMouseEvent *event)
virtual void mouseReleaseEvent(QMouseEvent *event)
virtual void mouseUngrabEvent()
virtual void releaseResources()
virtual void touchEvent(QTouchEvent *event)
virtual void touchUngrabEvent()
void updateInputMethod(Qt::InputMethodQueries queries = Qt::ImQueryInput)
virtual QSGNode *updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *updatePaintNodeData)
virtual void updatePolish()
virtual void wheelEvent(QWheelEvent *event)
bool widthValid() const

재구현된 보호된 함수

virtual void classBegin() override
virtual void componentComplete() override
virtual bool event(QEvent *ev) override

상세 설명

Qt Quick 의 모든 시각적 항목은 QQuickItem을 상속합니다. QQuickItem 인스턴스는 시각적인 모양을 가지고 있지는 않지만, x 및 y 위치, 너비와 높이, 고정 및 키 처리 지원과 같이 시각적 항목 전반에 공통적으로 적용되는 모든 속성을 정의합니다.

QQuickItem을 서브클래스화하여 이러한 기능을 상속하는 사용자 정의 시각적 항목을 제공할 수 있습니다.

사용자 정의 씬 그래프 항목

모든 시각적 QML 항목은 씬 그래프를 사용하여 렌더링되며, 씬 그래프의 기본 구현은 OpenGL, Vulkan, Metal 또는 Direct 3D와 같은 가속 그래픽 API와 밀접하게 연결된 저수준의 고성능 렌더링 스택입니다. QQuickItem의 서브클래스는 ` QQuickItem::ItemHasContents ` 플래그를 설정하고 ` QQuickItem::updatePaintNode()` 함수를 재구현하여 장면 그래프에 자체 사용자 정의 콘텐츠를 추가할 수 있습니다.

경고: 그래픽 처리 작업과 씬 그래프와의 상호작용은반드시 렌더링 스레드에서만 수행되어야하며 , 특히 ` updatePaintNode()` 호출 중에 이루어져야합니다 . 가장 좋은 원칙은 ` QQuickItem::updatePaintNode()` 함수 내에서만 "QSG" 접두사가 붙은 클래스만 사용하는 것입니다.

참고: QSG 접두사가 붙은모든 클래스는 반드시 씬 그래프의 렌더링 스레드에서만 사용해야 합니다. 자세한 내용은 ‘씬 그래프 및 렌더링’을 참조하십시오.

그래픽 리소스 처리

씬 그래프에서 사용되는 그래픽 리소스의 정리를 처리하는 가장 권장되는 방법은 노드의 자동 정리 기능을 이용하는 것입니다. QQuickItem::updatePaintNode()에서 반환된 QSGNode 는 적절한 시점에 적절한 스레드에서 자동으로 삭제됩니다. QSGNode 인스턴스의 트리는 기본적으로 설정된 QSGNode::OwnedByParent 를 통해 관리됩니다. 따라서 대부분의 사용자 정의 씬 그래프 항목의 경우 별도의 작업이 필요하지 않습니다.

QQuickItem::textureProvider()을 구현하는 아이템과 같이 노드 트리 외부에 그래픽 리소스를 저장하는 구현의 경우, QML에서 해당 아이템이 어떻게 사용되는지에 따라 리소스를 올바르게 정리해야 합니다. 처리해야 할 상황은 다음과 같습니다:

  • 씬 그래프가 무효화되는 경우; 이는 플랫폼 및 ` QQuickWindow ` 구성에 따라 ` QQuickWindow::hide()`를 사용하여 창을 숨기거나 창이 닫힐 때 발생할 수 있습니다. 항목 클래스가 ` invalidateSceneGraph()`라는 이름의 ` slot `을 구현하는 경우, 이 슬롯은 GUI 스레드가 차단된 상태에서 렌더링 스레드에서 호출됩니다. 이는 ` QQuickWindow::sceneGraphInvalidated()`에 연결하는 것과 동일합니다. OpenGL을 통해 렌더링할 때, 이 슬롯이 호출되면 이 아이템의 창에 대한 OpenGL 컨텍스트가 바인딩됩니다. 유일한 예외는 Qt의 제어 범위를 벗어나 네이티브 OpenGL이 파괴된 경우로, 예를 들어 EGL_CONTEXT_LOST 를 통해 파괴된 경우입니다.
  • 항목이 씬에서 제거됩니다. 예를 들어, 부모가 ` null `로 설정되었거나 다른 창의 항목인 경우와 같이 항목이 씬에서 제거되면, GUI 스레드에서 ` QQuickItem::releaseResources()`가 호출됩니다. 렌더링 리소스의 정리를 예약하려면 ` QQuickWindow::scheduleRenderJob()`를 사용해야 합니다.
  • 항목이 삭제됩니다. 항목의 소멸자가 실행되면, 해당 항목이 보유한 모든 그래픽 리소스를 삭제해야 합니다. 위의 두 조건 중 어느 것도 충족되지 않았다면, 해당 항목은 창에 속해 있을 것이며 QQuickWindow::scheduleRenderJob()을 사용하여 리소스를 정리할 수 있습니다. 구현에서 QQuickItem::releaseResources() 호출을 무시하는 경우, 해당 아이템은 대부분의 경우 더 이상 QQuickWindow 에 접근할 수 없게 되어 정리 작업을 예약할 수단이 없게 됩니다.

QQuickWindow::scheduleRenderJob()를 사용하여 그래픽 리소스의 정리 작업을 예약할 때는 QQuickWindow::BeforeSynchronizingStage 또는 QQuickWindow::AfterSynchronizingStage 중 하나를 사용해야 합니다. 동기화 단계는 QML 트리의 변경에 따라 씬 그래프가 변경되는 시점입니다. 이 외의 시점에 정리 작업을 예약하면, 해당 부분이 아직 업데이트되지 않았기 때문에 씬 그래프의 다른 부분이 새로 삭제된 객체를 참조하게 될 수 있습니다.

참고: QObject::deleteLater()을사용하여 그래픽 리소스를 정리하는 것은 강력히 권장하지 않습니다. 이는 delete 작업이 임의의 시점에 실행되게 하며, 삭제 시점에 OpenGL 컨텍스트가 바인딩되어 있을지 여부가 불확실하기 때문입니다.

사용자 정의 QPainter 항목

QQuickItem은 QQuickPaintedItem 라는 서브클래스를 제공하며, 이를 통해 사용자는 QPainter 를 사용하여 콘텐츠를 렌더링할 수 있습니다.

경고: ` QQuickPaintedItem `를 사용하면 소프트웨어 래스터화를 통해 간접적인 2D 표면을 사용하여 콘텐츠를 렌더링하므로, 렌더링은 두 단계의 작업으로 이루어집니다. 먼저 표면을 래스터화한 다음, 표면을 그립니다. 씬 그래프 API를 직접 사용하는 것이 항상 훨씬 더 빠릅니다.

동작 애니메이션

Item이 속성 변경에 대한 애니메이션을 정의하기 위해 Behavior 유형을 사용하는 경우, C++에서 해당 속성을 수정해야 할 때는 항상 QObject::setProperty(), QQmlProperty() 또는 QMetaProperty::write() 중 하나를 사용해야 합니다. 이렇게 해야 QML 엔진이 속성 변경을 인식할 수 있습니다. 그렇지 않으면 엔진이 요청한 애니메이션을 실행할 수 없습니다. 이러한 함수를 사용하면 성능이 약간 저하될 수 있습니다. 자세한 내용은 ‘C++에서 QML 객체 유형의 멤버에 액세스하기’를 참조하십시오.

QQuickWindow 및 QQuickPaintedItem도 참조하십시오 .

멤버 유형 문서

enum QQuickItem::Flag
flags QQuickItem::Flags

이 열거형 유형은 다양한 항목 속성을 지정하는 데 사용됩니다.

상수값설명
QQuickItem::ItemClipsChildrenToShape0x01이 항목이 자식 항목을 시각적으로 잘라내어, 자식 항목이 이 항목의 경계 내에서만 렌더링되도록 해야 함을 나타냅니다.
QQuickItem::ItemAcceptsInputMethod0x02이 항목이 텍스트 입력 방식을 지원함을 나타냅니다.
QQuickItem::ItemIsFocusScope0x04이 항목이 포커스 범위임을 나타냅니다. 자세한 내용은 Qt Quick 의 ‘키보드 포커스’를 참조하십시오.
QQuickItem::ItemHasContents0x08이 항목에 시각적 콘텐츠가 있으며, 장면 그래프에 의해 렌더링되어야 함을 나타냅니다.
QQuickItem::ItemAcceptsDrops0x10이 항목이 드래그 앤 드롭 이벤트를 수락함을 나타냅니다.
QQuickItem::ItemIsViewport0x20이 항목이 자식 요소에 대한 뷰포트를 정의함을 나타냅니다.
QQuickItem::ItemObservesViewport0x40상위 요소 중 하나라도 ItemIsViewport 플래그가 설정되어 있을 때, 해당 항목이 뷰포트 경계를 파악하고자 함을 나타냅니다.

Flags 유형은 QFlags<Flag>에 대한 typedef입니다. 이 유형은 Flag 값들의 OR 조합을 저장합니다.

setFlag(), setFlags(), flags()도 참조하십시오 .

enum QQuickItem::ItemChange

QQuickItem::itemChange()와 함께 사용하여 항목에 특정 유형의 변경 사항을 알립니다.

상수값설명
QQuickItem::ItemChildAddedChange0자식이 추가되었습니다. ItemChangeData::item 에는 추가된 자식이 포함됩니다.
QQuickItem::ItemChildRemovedChange1자식이 제거되었습니다. ` ItemChangeData::item `에는 제거된 자식이 포함됩니다.
QQuickItem::ItemSceneChange2항목이 씬에 추가되거나 씬에서 제거되었습니다. 씬을 렌더링하는 QQuickWindow 는 ItemChangeData::window 를 사용하여 지정됩니다. 항목이 씬에서 제거될 때 window 매개변수는 null입니다.
QQuickItem::ItemVisibleHasChanged3항목의 표시 상태가 변경되었습니다. ` ItemChangeData::boolValue `에는 새로운 표시 상태가 포함됩니다.
QQuickItem::ItemParentHasChanged4항목의 부모가 변경되었습니다. ` ItemChangeData::item `에는 새로운 부모가 포함됩니다.
QQuickItem::ItemOpacityHasChanged5항목의 불투명도가 변경되었습니다. ` ItemChangeData::realValue `에는 새로운 불투명도가 포함됩니다.
QQuickItem::ItemActiveFocusHasChanged6아이템의 포커스가 변경되었습니다. ` ItemChangeData::boolValue `에는 아이템이 포커스를 가지고 있는지 여부가 포함됩니다.
QQuickItem::ItemRotationHasChanged7항목의 회전 각도가 변경되었습니다. ` ItemChangeData::realValue `에는 새로운 회전 각도가 포함됩니다.
QQuickItem::ItemDevicePixelRatioHasChanged9항목이 표시된 화면의 디바이스 픽셀 비율이 변경되었습니다. ItemChangedData::realValue에는 새로운 디바이스 픽셀 비율이 포함됩니다.
QQuickItem::ItemAntialiasingHasChanged8앤티앨리어싱이 변경되었습니다. 현재(부울) 값은 QQuickItem::antialiasing 에서 확인할 수 있습니다.
QQuickItem::ItemEnabledHasChanged10항목의 활성화 상태가 변경되었습니다. ItemChangeData::boolValue 에는 새로운 활성화 상태가 포함되어 있습니다. (Qt 5.10부터)
QQuickItem::ItemScaleHasChanged11항목의 배율이 변경되었습니다. ItemChangeData::realValue 에는 배율이 포함됩니다. (Qt 6.9부터)
QQuickItem::ItemTransformHasChanged12항목의 변환이 변경되었습니다. 이는 항목의 위치, 크기, 회전, 스케일, transformOrigin 또는 부착된 변환이 변경될 때 발생합니다. ItemChangeData::item 에는 변경을 유발한 항목이 포함되어 있습니다. (Qt 6.9부터)

[since 6.12] enum QQuickItem::MutabilityGroup

이 열거형은 ` mutabilityGroup ` 속성에 사용할 수 있는 미리 정의된 값들을 제공합니다.

상수상수명상수값
QQuickItem::AutoMutabilityGroup0x0기본 변경 가능성 그룹입니다.
QQuickItem::StaticMutabilityGroup0x1항목이 거의 또는 전혀 업데이트되지 않음을 나타냅니다.
QQuickItem::ModerateMutabilityGroup0x8항목이 적당히 자주 업데이트됨을 나타냅니다.
QQuickItem::DynamicMutabilityGroup0xf항목이 자주/매 프레임마다 업데이트됨을 나타냅니다.

이 열거형은 Qt 6.12에서 도입되었습니다.

enum QQuickItem::TransformOrigin

크기 조정과 같은 간단한 변환이 적용되는 중심점을 제어합니다.

상수값설명
QQuickItem::TopLeft0아이템의 왼쪽 상단 모서리.
QQuickItem::Top1아이템 상단의 중심점입니다.
QQuickItem::TopRight2항목의 오른쪽 상단 모서리.
QQuickItem::Left3수직 중앙의 가장 왼쪽 지점.
QQuickItem::Center4항목의 중심.
QQuickItem::Right5수직 중앙의 가장 오른쪽 지점.
QQuickItem::BottomLeft6항목의 왼쪽 하단 모서리.
QQuickItem::Bottom7항목 하단의 중심점.
QQuickItem::BottomRight8항목의 오른쪽 하단 모서리.

transformOrigin() 및 setTransformOrigin()도 참조하십시오 .

속성 설명서

[read-only] activeFocus : bool

이 읽기 전용 속성은 해당 항목이 활성 포커스를 가지고 있는지 여부를 나타냅니다.

activeFocus가 true인 경우, 이 항목이 현재 키보드 입력을 받고 있거나, 현재 키보드 입력을 받고 있는 항목의 FocusScope 상위 요소 중 하나입니다.

일반적으로 activeFocus는 항목과 이를 감싸고 있는 FocusScope 객체에 focus 를 설정하여 획득합니다. 다음 예제에서 input 및 focusScope 객체는 활성 포커스를 가지지만, 루트 사각형 객체는 그렇지 않습니다.

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        focus: true

        TextInput {
            id: input
            focus: true
        }
    }
}

액세스 함수:

bool hasActiveFocus() const

Qt Quick 의` focus ` 및 ` Keyboard Focus`항목도 참조하십시오 .

activeFocusOnTab : bool

이 속성은 해당 항목이 탭 포커스 체인에 포함되기를 원하는지 여부를 나타냅니다. 기본적으로 이 속성은 ` false`로 설정되어 있습니다.

참고: ` tabFocusBehavior `는 포커스를 텍스트 컨트롤이나 목록 컨트롤과 같은 특정 유형의 컨트롤로만 더욱 제한할 수 있습니다. macOS의 경우 시스템 설정에 따라 특정 컨트롤에 대한 포커스가 제한될 수 있습니다.

액세스 함수:

bool activeFocusOnTab() const
void setActiveFocusOnTab(bool)

QStyleHints::tabFocusBehavior 및 focusPolicy도 참조하십시오 .

antialiasing : bool

해당 항목에 앤티앨리어싱을 적용할지 여부를 지정합니다.

시각적 요소가 해당 항목에 앤티앨리어싱을 적용할지 여부를 결정하는 데 사용됩니다. 경우에 따라 앤티앨리어싱이 적용된 항목은 더 많은 메모리를 필요로 하며, 렌더링 속도가 느려질 수 있습니다(자세한 내용은 앤티앨리어싱 참조).

기본값은 false이지만, 파생된 요소에서 재정의할 수 있습니다.

액세스 함수:

bool antialiasing() const
void setAntialiasing(bool)
void resetAntialiasing()

baselineOffset : qreal

항목의 기준선 위치를 로컬 좌표계에서 지정합니다.

Text 항목의 기준선은 텍스트가 배치되는 가상의 선입니다. 텍스트를 포함하는 컨트롤은 일반적으로 기준선을 해당 텍스트의 기준선으로 설정합니다.

텍스트가 아닌 항목의 경우, 기본 베이스라인 오프셋 0이 사용됩니다.

액세스 함수:

qreal baselineOffset() const
void setBaselineOffset(qreal)

[read-only] childrenRect : QRectF

이 속성은 항목의 자식 요소들의 전체적인 위치와 크기를 저장합니다.

이 속성은 항목의 크기를 올바르게 조정하기 위해 항목의 자식 요소들의 통합 기하학적 정보를 참조해야 할 때 유용합니다.

반환되는 기하 구조는 해당 항목에 국한됩니다. 예:

Item {
    x: 50
    y: 100

    // prints: QRectF(-10, -20, 30, 40)
    Component.onCompleted: print(childrenRect)

    Item {
        x: -10
        y: -20
        width: 30
        height: 40
    }
}

액세스 함수:

QRectF childrenRect()

clip : bool

이 속성은 클리핑이 활성화되어 있는지 여부를 나타냅니다. 클리핑의 기본값은 ` false`입니다.

클리핑이 활성화된 경우, 항목은 자체 렌더링 결과뿐만 아니라 자식 항목의 렌더링 결과도 바운딩 사각형으로 잘라냅니다. 항목의 페인트 작업 중에 클리핑을 설정하는 경우, 씬의 나머지 부분이 잘리지 않도록 설정을 다시 초기화해야 합니다.

참고: 클리핑은 렌더링 성능에 영향을 줄 수 있습니다. 자세한 내용은 ‘클리핑(Clipping)’을 참조하십시오.

참고: QML의특성상 , `clip`을 ` true `로 설정하면 ` ItemIsViewport ` 플래그도 함께 설정되는데, 이는 때때로 최적화 역할을 합니다. 즉, ` ItemObservesViewport ` 플래그가 설정된 자식 항목의 경우, 뷰포트 외부에 위치하는 씬 그래프 노드 생성을 생략할 수 있습니다. 하지만 ` ItemIsViewport ` 플래그는 독립적으로 설정할 수도 있습니다.

액세스 함수:

bool clip() const
void setClip(bool)

containmentMask : QObject*

이 속성은 ` contains()` 메서드에서 사용될 선택적 마스크를 포함하며, 주로 각 ` QPointerEvent`에 대한 히트 테스트에 사용됩니다.

기본적으로 ` contains()`는 아이템의 바운딩 박스 내의 모든 지점에 대해 ` true `를 반환합니다. 하지만 ` QQuickItem`나, 다음 형식의 함수를 구현하는 ` QObject `는

Q_INVOKABLE bool contains(const QPointF &point) const;

의 함수를 구현하는 xml-ph-0002@deepl.internal나 xml-ph-0003@deepl.internal는 마스크로 사용되어, 해당 객체로 히트 테스트를 위임할 수 있습니다.

참고: contains()는 이벤트 전달 과정에서 빈번하게 호출됩니다. 히트 테스트를 다른 객체로 위임하면 처리 속도가 다소 느려집니다. 해당 객체의 contains() 메서드가 효율적이지 않은 경우, containmentMask()가 성능 문제를 일으킬 수 있습니다. 사용자 정의 QQuickItem 하위 클래스를 구현하는 경우, 대신 contains()를 재정의할 수도 있습니다.

액세스 함수:

QObject *containmentMask() const
void setContainmentMask(QObject *mask)

Notifier 시그널:

void containmentMaskChanged()

contains()도 참조하십시오 .

enabled : bool

이 속성은 항목이 마우스 및 키보드 이벤트를 수신하는지 여부를 나타냅니다. 기본값은 true입니다.

이 속성을 설정하면 자식 항목의 ` enabled ` 값에 직접적인 영향을 미칩니다. ` false`로 설정하면 모든 자식 항목의 ` enabled ` 값도 ` false`로 변경됩니다. ` true`로 설정하면, 자식 항목의 ` enabled ` 값은 명시적으로 ` false`로 설정되지 않은 한 ` true`로 복원됩니다.

이 속성을 false 로 설정하면 activeFocus 가 자동으로 false 로 설정되며, 이 항목은 더 이상 키보드 이벤트를 수신하지 않게 됩니다.

참고: 호버 이벤트는 setAcceptHoverEvents()를 통해 별도로 활성화됩니다. 따라서 비활성화된 항목은 이 속성이 false 로 설정되어 있더라도 계속해서 호버 이벤트를 수신할 수 있습니다. 이를 통해 상호작용 가능한 항목이 비활성화된 상태에서도 ToolTip 과 같은 정보성 피드백을 표시할 수 있습니다. 해당 항목의 자식으로 추가된 모든 HoverHandlers 에도 동일한 원리가 적용됩니다. 그러나 ` HoverHandler `는 명시적으로 ` disabled `로 설정되거나, 예를 들어 항목의 ` enabled ` 상태에 바인딩될 수 있습니다.

액세스 함수:

bool isEnabled() const
void setEnabled(bool)

visible도 참조하십시오 .

focus : bool

이 속성은 해당 항목이 둘러싸고 있는 FocusScope 내에서 포커스를 가지고 있는지 여부와 관계없이 적용됩니다. true인 경우, 둘러싸고 있는 FocusScope 가 활성 포커스를 얻으면 이 항목도 활성 포커스를 얻게 됩니다.

다음 예제에서, scope 가 활성 포커스를 얻으면 input 도 활성 포커스를 받게 됩니다:

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        id: scope

        TextInput {
            id: input
            focus: true
        }
    }
}

이 속성의 목적상, 전체 장면이 포커스 범위처럼 작동하는 것으로 간주됩니다. 실질적으로 이는 다음 QML 코드가 시작 시 input 에 활성 포커스를 부여함을 의미합니다.

Rectangle {
    width: 100; height: 100

    TextInput {
          id: input
          focus: true
    }
}

액세스 함수:

bool hasFocus() const
void setFocus(bool)
void setFocus(bool focus, Qt::FocusReason reason)

Qt Quick 의activeFocus 및 키보드 포커스항목도 참조하십시오 .

[since 6.7] focusPolicy : Qt::FocusPolicy

이 속성은 항목이 포커스를 받는 방식을 결정합니다.

이 열거형은 Qt 6.7에서 도입되었습니다.

액세스 함수:

Qt::FocusPolicy focusPolicy() const
void setFocusPolicy(Qt::FocusPolicy policy)

[bindable] height : qreal

참고: 이 속성은 QProperty 바인딩을 지원합니다.

이 속성은 이 항목의 높이를 저장합니다.

액세스 함수:

qreal height() const
void setHeight(qreal)
void resetHeight()

implicitHeight : qreal

implicitWidth : qreal

항목의 권장 너비 또는 높이를 지정합니다.

width 또는 height 가 지정되지 않은 경우, 항목의 실제 크기는 implicitWidth 또는 implicitHeight 에 의해 결정됩니다.

그러나 항목이 레이아웃의 자식인 경우, 레이아웃은 암시적 크기를 사용하여 항목의 선호 크기를 결정합니다. 이러한 경우 명시적으로 지정된 width 또는 height 는 무시됩니다.

대부분의 항목에 대한 기본 암시적 크기는 0x0이지만, 일부 항목(예: Image 및 Text)은 재정의할 수 없는 고유한 암시적 크기를 가지고 있습니다.

암시적 크기를 설정하는 것은 콘텐츠에 따라 선호하는 크기가 있는 구성 요소를 정의하는 데 유용합니다. 예를 들면 다음과 같습니다.

// Label.qml
import QtQuick 2.0

Item {
    property alias icon: image.source
    property alias label: text.text
    implicitWidth: text.implicitWidth + image.implicitWidth
    implicitHeight: Math.max(text.implicitHeight, image.implicitHeight)
    Image { id: image }
    Text {
        id: text
        wrapMode: Text.Wrap
        anchors.left: image.right; anchors.right: parent.right
        anchors.verticalCenter: parent.verticalCenter
    }
}

참고: implicitWidth, Text 또는 TextEdit 을사용하고 너비를 명시적으로 설정하면 텍스트를 두 번 레이아웃해야 하므로 성능 저하가 발생합니다.

[since 6.12] mutabilityGroup : int

항목의 변경 빈도에 대한 렌더러 힌트

이 속성은 저수준 최적화에 사용할 수 있는 고급 속성입니다. 이 속성은 항목이 얼마나 자주 업데이트될지에 대한 정보를 렌더러에 제공하는 힌트 역할을 합니다. 일반적인 사용 사례에서는 이 속성을 기본값(QQuickItem::AutoMutabilityGroup (0))으로 두는 것만으로도 충분합니다.

그러나 특정 경우, 성능 분석을 통해 Qt Quick 시나그래프 렌더러의 기본 동작으로는 최적화할 수 없었던 병목 현상이 발견될 수 있습니다. 일반적으로 이는 빠르게 업데이트되는 지오메트리가 정적 지오메트리와 함께 배치 처리될 때 발생할 수 있습니다. 이를 방지하려면, 예를 들어 빠르게 업데이트되는 컴포넌트를 QQuickItem::DynamicMutabilityGroup 에 할당해 볼 수 있습니다. 서로 다른 가변성 그룹에 속한 지오메트리는 함께 배치 처리되지 않습니다.

변경 가능성 그룹은 항목 자체에만 적용되며, 자식 요소에는 전파되지 않습니다.

Qt Quick 시네그래프 렌더러의 내부 작동 방식 및 지오메트리 일괄 처리(batching)에 대한 자세한 내용은 Qt Quick Scene Graph Default Renderer를 참조하십시오.

참고: 가변성 그룹의 유효한 수치범위는 [0 .. 15]입니다. 이 속성은 이 범위로 제한됩니다. 관례상, 그룹의 수치 값이 커질수록 빈도가 증가하는 것으로 간주됩니다.

이 열거형은 Qt 6.12에서 도입되었습니다.

액세스 함수:

int mutabilityGroup() const
void setMutabilityGroup(int mutabilityGroup)

opacity : qreal

이 속성은 항목의 불투명도를 나타냅니다. 불투명도는 0.0(완전 투명)에서 1.0(완전 불투명) 사이의 숫자로 지정됩니다. 기본값은 1.0입니다.

이 속성이 설정되면, 지정된 불투명도가 자식 항목에도 개별적으로 적용됩니다. 이로 인해 일부 상황에서는 의도하지 않은 결과가 발생할 수 있습니다. 예를 들어, 아래의 두 번째 직사각형 그룹에서 빨간색 직사각형의 불투명도가 0.5로 지정되어 있는데, 자식인 파란색 직사각형에는 불투명도가 지정되지 않았음에도 불구하고 이 속성이 파란색 직사각형의 불투명도에 영향을 미칩니다.

0에서 1 사이의 범위를 벗어난 값은 클램핑됩니다.

불투명도가 100%인 빨간색과 파란색 직사각형

Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

빨간색과 파란색 직사각형은 모두 부모 객체의 불투명도 0.5로 인해 반투명합니다.

Item {
    Rectangle {
        opacity: 0.5
        color: "red"
        width: 100; height: 100
        Rectangle {
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

항목의 불투명도를 변경해도 해당 항목이 사용자 입력 이벤트를 수신하는 데는 영향을 미치지 않습니다. (반면, ` visible ` 속성을 ` false `로 설정하면 마우스 이벤트가 중지되고, ` enabled ` 속성을 ` false `로 설정하면 마우스 및 키보드 이벤트가 중지되며, 해당 항목의 활성 포커스도 제거됩니다.)

액세스 함수:

qreal opacity() const
void setOpacity(qreal)

visible도 참조하십시오 .

parent : QQuickItem*

이 속성은 항목의 시각적 상위 요소를 나타냅니다.

참고: 시각적 부모 ( visual parent )의개념은 객체 부모(QObject )의 개념과 다릅니다. 항목의 시각적 부모가 반드시 해당 항목의 객체 부모와 동일할 필요는 없습니다. 자세한 내용은 Qt Quick 의 '개념 - 시각적 부모(Concepts - Visual Parent)'를 참조하십시오.

참고: 이 속성에 대한 알림신호는 시각적 부모가 소멸될 때 발생합니다. C++ 신호 핸들러는 시각적 부모 계층 구조 내의 항목이 여전히 완전히 생성된 상태라고 가정해서는 안 됩니다. 부모 계층 구조 내의 항목을 예상된 유형으로 안전하게 사용할 수 있는지 확인하려면 ` qobject_cast `를 사용하십시오.

액세스 함수:

QQuickItem *parentItem() const
void setParentItem(QQuickItem *parent)

rotation : qreal

이 속성은 항목의 중심축( transformOrigin)을 기준으로 시계 방향으로의 회전 각도(도)를 나타냅니다.

기본값은 0도(즉, 회전 없음)입니다.

파란색 사각형 안에 30도 회전된 빨간색 사각형

Rectangle {
    color: "blue"
    width: 100; height: 100
    Rectangle {
        color: "red"
        x: 25; y: 25; width: 50; height: 50
        rotation: 30
    }
}

액세스 함수:

qreal rotation() const
void setRotation(qreal)

Transform 및 Rotation도 참조하십시오 .

scale : qreal

이 속성은 해당 항목의 배율 계수를 저장합니다.

스케일이 1.0보다 작으면 항목이 더 작은 크기로 렌더링되고, 1.0보다 크면 더 큰 크기로 렌더링됩니다. 음수 스케일을 지정하면 항목이 렌더링될 때 대칭으로 반전됩니다.

기본값은 1.0입니다.

크기 조정은 ` transformOrigin`에서 적용됩니다.

특정 크기와 위치가 지정된 파란색과 빨간색 사각형

import QtQuick 2.0

Rectangle {
    color: "blue"
    width: 100; height: 100

    Rectangle {
        color: "green"
        width: 25; height: 25
    }

    Rectangle {
        color: "red"
        x: 25; y: 25; width: 50; height: 50
        scale: 1.4
    }
}

액세스 함수:

qreal scale() const
void setScale(qreal)

Transform 및 Scale도 참조하십시오 .

smooth : bool

항목에 스무딩을 적용할지 여부를 지정합니다.

주로 이미지 기반 항목에서 해당 항목이 스무딩 샘플링을 사용할지 여부를 결정하는 데 사용됩니다. 스무딩 샘플링은 선형 보간을 사용하여 수행되는 반면, 스무딩되지 않은 샘플링은 가장 가까운 이웃법을 사용하여 수행됩니다.

Qt Quick 2.0에서는 이 속성이 성능에 미치는 영향이 미미합니다.

기본적으로 이 속성은 ‘ true ’로 설정되어 있습니다.

액세스 함수:

bool smooth() const
void setSmooth(bool)

state : QString

이 속성은 항목의 현재 상태 이름을 저장합니다.

항목이 기본 상태, 즉 명시적인 상태가 설정되지 않은 상태인 경우, 이 속성은 빈 문자열을 저장합니다. 마찬가지로, 이 속성을 빈 문자열로 설정하여 항목을 기본 상태로 되돌릴 수 있습니다.

액세스 함수:

QString state() const
void setState(const QString &)

Qt Quick 의 ‘States’항목도 참조하십시오 .

transformOrigin : TransformOrigin

이 속성은 크기 조정 및 회전 변환의 기준점이 되는 원점을 지정합니다.

아래 이미지에 표시된 것처럼 9가지 변환 원점이 제공됩니다. 기본 변환 원점은 Item.Center 입니다.

9개의 변환 원점을 나타내는 직사각형: 왼쪽 위, 위, 오른쪽 위, 왼쪽, 중앙, 오른쪽, 왼쪽 아래, 아래, 오른쪽 아래

액세스 함수:

QQuickItem::TransformOrigin transformOrigin() const
void setTransformOrigin(QQuickItem::TransformOrigin)

visible : bool

이 속성은 항목이 표시되는지 여부를 나타냅니다. 기본적으로 이 값은 true입니다.

이 속성을 설정하면 하위 항목의 ` visible ` 값에 직접적인 영향을 미칩니다. ` false`로 설정하면 모든 하위 항목의 ` visible ` 값도 ` false`가 됩니다. ` true`로 설정하면, 하위 항목의 ` visible ` 값은 명시적으로 ` false`로 설정되지 않은 한 ` true`로 복원됩니다.

(이러한 연쇄 동작으로 인해, 속성 바인딩이 명시적인 속성 변경에만 반응해야 하는 경우 visible 속성을 사용하면 의도한 효과를 얻지 못할 수 있습니다. 이러한 경우에는 대신 opacity 속성을 사용하는 것이 더 나을 수 있습니다.)

이 속성이 false 로 설정되면, 해당 항목은 더 이상 마우스 이벤트를 수신하지 않지만 키 이벤트는 계속 수신하며, 설정된 경우 키보드 focus 도 유지합니다. (반면, enabled 속성을 false 로 설정하면 마우스 및 키보드 이벤트가 모두 중지되고, 항목의 포커스도 제거됩니다.)

참고: 이 속성의 값은 해당 속성 자체의 변경이나 부모의 ` visible ` 속성 변경에 의해서만 영향을 받습니다. 예를 들어, 이 아이템이 화면 밖으로 이동하거나 ` opacity `가 0으로 변경되더라도 이 값은 변하지 않습니다. 그러나 역사적인 이유로, 이 항목이 아직 장면에 추가되지 않았더라도 항목이 생성된 후에는 이 속성의 값이 true가 됩니다. 장면에 추가되지 않은 항목의 이 속성을 변경하거나 읽을 경우, 예상한 결과가 나오지 않을 수 있습니다.

참고: 이 속성에 대한 알림신호는 시각적 부모가 소멸될 때 발생합니다. C++ 신호 핸들러는 시각적 부모 계층 구조 내의 항목이 여전히 완전히 생성된 상태라고 가정해서는 안 됩니다. ` qobject_cast `를 사용하여 부모 계층 구조 내의 항목을 예상된 유형으로 안전하게 사용할 수 있는지 확인하십시오.

액세스 함수:

bool isVisible() const
void setVisible(bool)

opacity 및 enabled도 참조하십시오 .

[bindable] width : qreal

참고: 이 속성은 QProperty 바인딩을 지원합니다.

이 속성은 이 항목의 너비를 저장합니다.

액세스 함수:

qreal width() const
void setWidth(qreal)
void resetWidth()

[bindable] x : qreal

참고: 이 속성은 ‘ QProperty ’ 바인딩을 지원합니다.

항목의 x 좌표를 부모 항목을 기준으로 정의합니다.

액세스 함수:

qreal x() const
void setX(qreal)

[bindable] y : qreal

참고: 이 속성은 QProperty 바인딩을 지원합니다.

항목의 y 좌표를 상위 항목에 상대적인 위치로 정의합니다.

액세스 함수:

qreal y() const
void setY(qreal)

z : qreal

동급 항목의 중첩 순서를 설정합니다. 기본적으로 중첩 순서는 0입니다.

스태킹 값이 더 큰 항목은 스태킹 순서가 더 낮은 형제 항목 위에 그려집니다. 스태킹 값이 같은 항목은 나타나는 순서대로 아래에서 위로 그려집니다. 스태킹 값이 음수인 항목은 부모 콘텐츠 아래에 그려집니다.

다음 예제는 중첩 순서에 따른 다양한 효과를 보여줍니다.

빨간색 위에 파란색 사각형이 있고, 그 위에 동생이 겹쳐져 있다

동일한 ` z ` - 나중에 추가된 자식 요소가 먼저 추가된 자식 요소 위에 표시됨:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

파란색 위에 있는 빨간색 사각형, z 값이 더 큰 것이 위에 겹쳐짐

z 가 더 높은 항목이 위에 표시됨:
Item {
    Rectangle {
        z: 1
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

빨간색 위에 파란색 사각형, 자식 요소가 부모 요소 위에 겹쳐짐

동일한 z - 자식 노드가 부모 노드 위에 위치하는 경우:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

파란색 위에 빨간색 사각형, 음의 z 값을 가진 사각형은 부모 객체 아래에 겹쳐짐

하단 z:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            z: -1
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

Access 함수:

qreal z() const
void setZ(qreal)

멤버 함수 설명서

[explicit] QQuickItem::QQuickItem(QQuickItem *parent = nullptr)

지정된 ` parent`을 사용하여 `QQuickItem`을 생성합니다.

parent 는 visual parent 과 QObject 의 부모로 모두 사용됩니다.

[override virtual noexcept] QQuickItem::~QQuickItem()

QQuickItem 를 삭제합니다.

bool QQuickItem::acceptHoverEvents() const

이 항목이 호버 이벤트를 허용하는지 여부를 반환합니다.

기본값은 false입니다.

이 값이 false인 경우, 해당 항목은 hoverEnterEvent(), hoverMoveEvent() 및 hoverLeaveEvent() 함수를 통해 호버 이벤트를 수신하지 않습니다.

setAcceptHoverEvents()도 참조하십시오 .

bool QQuickItem::acceptTouchEvents() const

이 항목이 터치 이벤트를 수락하는지 여부를 반환합니다.

기본값은 ` false`입니다.

이 값이 false 인 경우, 해당 아이템은 touchEvent() 함수를 통해 터치 이벤트를 수신하지 않습니다.

setAcceptTouchEvents()도 참조하십시오 .

Qt::MouseButtons QQuickItem::acceptedMouseButtons() const

이 항목에서 허용하는 마우스 버튼을 반환합니다.

기본값은 ` Qt::NoButton`이며, 이는 어떤 마우스 버튼도 허용하지 않음을 의미합니다.

항목이 특정 마우스 이벤트에 대한 마우스 버튼을 허용하지 않는 경우, 해당 마우스 이벤트는 해당 항목으로 전달되지 않고 대신 항목 계층 구조에서 다음 항목으로 전달됩니다.

setAcceptedMouseButtons() 및 acceptTouchEvents()도 참조하십시오 .

[virtual] QRectF QQuickItem::boundingRect() const

해당 항목의 자체 좌표계에서 항목의 범위를 반환합니다. 즉, 0, 0 에서 width()까지, 그리고 height()까지를 포함하는 직사각형입니다.

[invokable] QQuickItem *QQuickItem::childAt(qreal x, qreal y) const

이 항목의 좌표계 내에서 (x, y) 지점에서 발견된 첫 번째 표시된 자식 항목을 반환합니다.

해당 항목이 없는 경우 nullptr 을 반환합니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

QList<QQuickItem *> QQuickItem::childItems() const

이 항목의 자식 노드를 반환합니다.

[virtual protected] bool QQuickItem::childMouseEventFilter(QQuickItem *item, QEvent *event)

이 메서드를 재구현하여 이 항목의 자식 요소들이 수신하는 포인터 이벤트를 필터링하십시오.

이 메서드는 filtersChildMouseEvents()이 true 인 경우에만 호출됩니다.

지정된 event 가 지정된 자식 item 으로 전달되어서는 안 되는 경우 true 를 반환하고, 그 외의 경우에는 false 를 반환하십시오. true 를 반환하는 경우, 이벤트 전파를 중지할지 계속할지 신호를 보내기 위해 event 에 accept 또는 ignore 를 수행해야 합니다. 그러나 event 는 항상 부모 체인을 따라 위쪽의 모든 childMouseEventFilter로 전송됩니다.

참고: 이름과는달리 , 이 함수는 모든 자식(일반적으로 마우스, 터치 및 태블릿 이벤트)으로 전달되는 동안 모든 QPointerEvent 인스턴스를 필터링합니다. 하위 클래스에서 이 함수를 재정의할 때는 QPointerEvent 에 있는 액세서만 사용하여 일반적인 이벤트 처리 코드를 작성하는 것이 좋습니다. 또는 event->type() 및/또는 event->device()->type() 를 활성화하여 이벤트 유형에 따라 서로 다른 방식으로 처리할 수도 있습니다.

참고: 필터링은 제스처가 모호한 경우(예: 누를 때 사용자가 탭할지 드래그할지 알 수 없는 경우) 책임을 분담하는 한 가지 방법에 불과합니다. 또 다른 방법은 누름 시 QPointerEvent::addPassiveGrabber()를 호출하여 QEventPoint 의 진행 상황을 비독점적으로 모니터링하는 것입니다. 두 경우 모두, 모니터링 중인 항목 또는 포인터 핸들러는 제스처가 예상한 패턴에 부합한다는 것이 명확해지면 나중에 독점적인 그랩을 가져올 수 있습니다.

setFiltersChildMouseEvents()도 참조하십시오 .

[override virtual protected] void QQuickItem::classBegin()

QQmlParserStatus::classBegin()을 재구현합니다.

파생 클래스는 classBegin에서 자체 액션을 추가하기 전에 기본 클래스의 메서드를 호출해야 합니다.

[virtual] QRectF QQuickItem::clipRect() const

뷰포트(viewport)가 있고 ‘ ItemObservesViewport ’ 플래그가 설정된 경우, ` viewportItem()`에서 현재 표시되고 있는 이 항목 내의 직사각형 영역을 반환합니다. 그렇지 않은 경우, 이 항목의 자체 좌표계에서의 범위, 즉 ` 0, 0 `에서 ` width()`까지 및 ` height()`에 이르는 직사각형을 반환합니다. 이는 ` clip `가 ` true`인 경우 계속 표시되도록 의도된 영역입니다. 또한 ` updatePaintNode()`에서 사용되어 장면 그래프에 추가되는 그래픽을 제한할 수도 있습니다.

예를 들어, 애플리케이션 창의 일부만 차지하는 Flickable에 큰 그림이나 큰 텍스트 문서가 표시될 수 있습니다. 이 경우 Flickable이 뷰포트 항목이 되며, 사용자 정의 콘텐츠 렌더링 항목은 현재 표시된 영역 밖에 있는 씬 그래프 노드를 생략하도록 선택할 수 있습니다. ItemObservesViewport 플래그가 설정된 경우, 이 영역은 사용자가 Flickable 내의 콘텐츠를 스크롤할 때마다 변경됩니다.

중첩된 뷰포트 항목의 경우, clipRect()는 ‘ ItemIsViewport ’ 플래그가 설정된 모든 상위 항목의 ‘ boundingRect’ 간의 교집합이며, 이 항목의 좌표계로 매핑됩니다.

boundingRect()도 참조하십시오 .

[override virtual protected] void QQuickItem::componentComplete()

QQmlParserStatus::componentComplete()을 재구현합니다.

파생 클래스는 componentComplete에서 수행할 자체 동작을 추가하기 전에 기본 클래스의 메서드를 호출해야 합니다.

[virtual invokable] bool QQuickItem::contains(const QPointF &point) const

이 아이템에 로컬 좌표계의 ` point`가 포함되어 있으면 ` true `를 반환하고, 그렇지 않으면 ` false `를 반환합니다.

이 함수는 사용자 정의 모양을 가진 아이템에서 점 충돌을 처리하기 위해 재정의할 수 있습니다. 기본 구현은 containmentMask()이 설정된 경우 해당 범위 내에 점이 있는지, 그렇지 않은 경우 바운딩 박스 내에 점이 있는지 확인합니다.

참고: 이 메서드는 이벤트 전달 과정에서 각 QEventPoint 에 대한 히트 테스트에 사용되므로, 구현은 가능한 한 가볍게 유지해야 합니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하십시오.

QCursor QQuickItem::cursor() const

이 항목에 대한 커서 모양을 반환합니다.

별도의 커서 재정의가 설정되어 있지 않은 한, 마우스 커서가 이 항목 위에 위치하면 이 모양을 띱니다. 유용한 다양한 모양에 대해서는 list of predefined cursor objects 를 참조하십시오.

커서 모양이 설정되지 않은 경우, 이 함수는 Qt::ArrowCursor 모양의 커서를 반환하지만, 중복되는 항목에 유효한 커서가 있는 경우 다른 커서 모양이 표시될 수 있습니다.

setCursor() 및 unsetCursor()도 참조하십시오 .

[virtual protected] void QQuickItem::dragEnterEvent(QDragEnterEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 drag-enter 이벤트를 수신할 수 있습니다. 이벤트 정보는 event 매개변수를 통해 제공됩니다.

드래그 앤 드롭 이벤트는 해당 항목에 대해 ItemAcceptsDrops 플래그가 설정된 경우에만 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

Drag 및 드래그 앤 드롭항목도 참조하십시오.

[virtual protected] void QQuickItem::dragLeaveEvent(QDragLeaveEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 드래그 이탈(drag-leave) 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

드래그 앤 드롭 이벤트는 해당 항목에 대해 ItemAcceptsDrops 플래그가 설정된 경우에만 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

Drag 및 드래그 앤 드롭항목도 참조하십시오.

[virtual protected] void QQuickItem::dragMoveEvent(QDragMoveEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 드래그 이동 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

드래그 앤 드롭 이벤트는 해당 항목에 대해 ItemAcceptsDrops 플래그가 설정된 경우에만 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 을 호출하십시오.

Drag 및 드래그 앤 드롭항목도 참조하십시오.

[virtual protected] void QQuickItem::dropEvent(QDropEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 드롭 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

드래그 앤 드롭 이벤트는 해당 항목에 대해 ItemAcceptsDrops 플래그가 설정된 경우에만 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

Drag 및 드래그 앤 드롭항목도 참조하십시오.

[invokable, since 6.3] void QQuickItem::dumpItemTree() const

이 항목을 시작으로 항목들의 시각적 트리에 대한 세부 정보를 재귀적으로 출력합니다.

참고: ` QObject::dumpObjectTree()`도 유사한 트리를 출력하지만, Qt Quick 의 '개념 - 시각적 부모' 섹션에서 설명한 바와 같이, 항목의 ` QObject::parent()`는 때때로 ` QQuickItem::parentItem()`와 다를 수 있습니다. 두 트리를 모두 출력하여 차이점을 확인할 수 있습니다.

참고: 정확한 출력형식은 향후 Qt 버전에서 변경될 수 있습니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

이 함수는 Qt 6.3에서 도입되었습니다.

‘디버깅 기법 ’ 및 GammaRay의 Qt Quick Inspector도 참조하십시오 .

[invokable, since 6.3] void QQuickItem::ensurePolished()

updatePolish()를 호출합니다

이는 PolishEvent를 수신할 때까지 implicitWidth 및 implicitHeight 계산을 지연시키는 레이아웃(또는 포지셔너)과 같은 항목에 유용할 수 있습니다.

일반적으로, 예를 들어 레이아웃에 자식 항목이 추가되거나 제거되더라도 암시적 크기는 즉시 계산되지 않습니다(이는 최적화 때문입니다). 경우에 따라 자식 항목이 추가된 직후 레이아웃의 암시적 크기를 조회해야 할 수도 있습니다. 이 경우, 암시적 크기를 조회하기 직전에 이 함수를 사용하십시오.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

이 함수는 Qt 6.3에서 도입되었습니다.

updatePolish() 및 polish()도 참조하십시오 .

[override virtual protected] bool QQuickItem::event(QEvent *ev)

QObject::event(QEvent *e)를 재구현합니다.

bool QQuickItem::filtersChildMouseEvents() const

이 항목의 자식 항목을 대상으로 하는 포인터 이벤트를 이 항목을 통해 필터링해야 하는지 여부를 반환합니다.

이 항목과 자식 항목 모두 ` acceptTouchEvents()` true 를 설정해 둔 경우, 터치 상호작용이 발생하면 이 항목이 터치 이벤트를 필터링합니다. 하지만 이 항목이나 자식 항목 중 하나라도 터치 이벤트를 처리할 수 없는 경우, ` childMouseEventFilter()`가 합성된 마우스 이벤트와 함께 호출됩니다.

setFiltersChildMouseEvents() 및 childMouseEventFilter()도 참조하십시오 .

QQuickItem::Flags QQuickItem::flags() const

이 항목에 대한 항목 플래그를 반환합니다.

setFlags() 및 setFlag()도 참조하십시오 .

[virtual protected] void QQuickItem::focusInEvent(QFocusEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 특정 항목에 대한 포커스 인(focus-in) 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 을 호출하십시오.

이 함수를 재구현하는 경우, 기본 클래스의 구현을 호출해야 합니다.

[virtual protected] void QQuickItem::focusOutEvent(QFocusEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목의 포커스 이탈 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

[invokable] void QQuickItem::forceActiveFocus()

해당 항목에 활성 포커스를 설정합니다.

이 메서드는 항목에 포커스를 설정하고, 객체 계층 구조 내의 모든 상위 FocusScope 객체에도 focus 가 전달되도록 보장합니다.

포커스 변경 이유는 Qt::OtherFocusReason 가 됩니다. 포커스 변경을 더 효과적으로 처리하려면 오버로드된 메서드를 사용하여 포커스 변경 이유를 지정하십시오.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. ` Q_INVOKABLE`을 참조하십시오.

activeFocus도 참조하십시오 .

[invokable] void QQuickItem::forceActiveFocus(Qt::FocusReason reason)

지정된 reason 를 가진 항목에 포커스를 강제적으로 설정합니다.

이 메서드는 해당 항목에 포커스를 설정하고, 객체 계층 구조 내의 모든 상위 FocusScope 객체에도 focus 가 설정되도록 보장합니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

이 함수는 오버로드된 함수입니다.

activeFocus 및 Qt::FocusReason도 참조하십시오 .

[virtual protected, since 6.0] void QQuickItem::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)

이 함수는 oldGeometry 에서 newGeometry 로 이 항목의 지오메트리 변경 사항을 처리하기 위해 호출됩니다. 두 지오메트리가 동일한 경우, 아무 작업도 수행하지 않습니다.

파생 클래스는 자체 구현 내에서 기본 클래스의 메서드를 호출해야 합니다.

이 함수는 Qt 6.0에서 도입되었습니다.

QSharedPointer<QQuickItemGrabResult> QQuickItem::grabToImage(const QSize &targetSize = QSize())

항목을 메모리 내 이미지로 가져옵니다.

이 작업은 비동기적으로 수행되며, 작업이 완료되면 QQuickItemGrabResult::ready() 신호가 발생합니다.

targetSize 를 사용하여 대상 이미지의 크기를 지정합니다. 기본적으로 결과 이미지의 크기는 item과 동일합니다.

캡처를 시작할 수 없는 경우, 이 함수는 null 를 반환합니다.

참고: 이 함수는 항목을 오프스크린 표면에 렌더링한 다음, 해당 표면을 GPU 메모리에서 CPU 메모리로 복사하므로 상당한 성능 비용이 발생할 수 있습니다. "실시간" 미리 보기를 원한다면 layers 또는 ShaderEffectSource 를 사용하십시오.

QQuickWindow::grabWindow()도 참조하십시오 .

[protected] bool QQuickItem::heightValid() const

height 속성이 명시적으로 설정되었는지 여부를 반환합니다.

[virtual protected] void QQuickItem::hoverEnterEvent(QHoverEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목의 호버 진입(hover-enter) 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

acceptHoverEvents()의 값이 true인 경우에만 호버 이벤트가 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

[virtual protected] void QQuickItem::hoverLeaveEvent(QHoverEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 호버-리브(hover-leave) 이벤트를 수신할 수 있습니다. 이벤트 정보는 event 매개변수를 통해 제공됩니다.

acceptHoverEvents()의 값이 true인 경우에만 호버 이벤트가 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 을 호출하십시오.

[virtual protected] void QQuickItem::hoverMoveEvent(QHoverEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 호버 이동 이벤트를 수신할 수 있습니다. 이벤트 정보는 event 매개변수를 통해 제공됩니다.

acceptHoverEvents()의 값이 true인 경우에만 호버 이벤트가 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

qreal QQuickItem::implicitWidth() const

콘텐츠를 결정하는 다른 속성들에 의해 암시되는 항목의 너비를 반환합니다.

참고: implicitWidth 속성에 대한게터 함수입니다.

setImplicitWidth()도 참조하십시오 .

[virtual protected] void QQuickItem::inputMethodEvent(QInputMethodEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 입력 방법 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

[virtual] QVariant QQuickItem::inputMethodQuery(Qt::InputMethodQuery query) const

이 메서드는 입력 항목에만 적용됩니다.

이 항목이 입력 항목인 경우, 이 메서드는 주어진 ` query`에 대한 관련 입력 방법 플래그를 반환하도록 재구현되어야 합니다.

QWidget::inputMethodQuery()도 참조하십시오 .

bool QQuickItem::isAncestorOf(const QQuickItem *child) const

이 항목이 child 의 조상인 경우(즉, 이 항목이 child 의 부모이거나, child 의 부모 중 한 명의 조상인 경우) true 를 반환합니다.

parentItem()도 참조하십시오 .

[protected] bool QQuickItem::isComponentComplete() const

QML 컴포넌트의 생성 과정이 완료되면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

종종 컴포넌트가 완성될 때까지 일부 처리를 지연시키는 것이 바람직합니다.

componentComplete()도 참조하십시오 .

bool QQuickItem::isFocusScope() const

이 항목이 포커스 스코프인 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.

[virtual] bool QQuickItem::isTextureProvider() const

이 항목이 텍스처 제공자인 경우 true를 반환합니다. 기본 구현은 false를 반환합니다.

이 함수는 어떤 스레드에서든 호출할 수 있습니다.

[virtual protected] void QQuickItem::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value)

이 항목에 대해 ‘ change ’가 발생할 때 호출됩니다.

value 해당하는 경우, 변경 사항과 관련된 추가 정보가 포함됩니다.

하위 클래스에서 이 메서드를 재구현하는 경우,

QQuickItem::itemChange(change, value);

windowChanged() 신호가 정상적으로 발송되도록 하십시오.

bool QQuickItem::keepMouseGrab() const

마우스 입력이 이 항목에만 국한되어야 하는지 여부를 반환합니다.

setKeepMouseGrab(), QEvent::accept(), QEvent::ignore()도 참조하십시오 .

bool QQuickItem::keepTouchGrab() const

이 항목이 선택한 터치 포인트가 해당 항목에만 독점적으로 유지되어야 하는지 여부를 반환합니다.

setKeepTouchGrab(), keepMouseGrab(), QEvent::accept(), QEvent::ignore()도 참조하십시오 .

[virtual protected] void QQuickItem::keyPressEvent(QKeyEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 키 입력 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

[virtual protected] void QQuickItem::keyReleaseEvent(QKeyEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 키 해제 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

[invokable] QPointF QQuickItem::mapFromGlobal(const QPointF &point) const

전역 화면 좌표계에서 주어진 point 를 이 항목의 좌표계 내 해당 지점으로 매핑하고, 매핑된 좌표를 반환합니다.

매핑에는 항목의 다음 속성이 사용됩니다: x, y, scale, rotation, transformOrigin 및 transform.

항목들이 서로 다른 장면에 속해 있는 경우, 매핑에는 두 장면 간의 상대적 위치가 포함됩니다.

예를 들어, Qt Quick 컴포넌트에 팝업을 추가할 때 이 기능이 유용할 수 있습니다.

참고: 창 위치 지정은 창 관리자에 의해 수행되며, 이 값은 단지 참고용으로만 취급됩니다. 따라서 결과적인 창 위치는 예상한 것과 다를 수 있습니다.

참고: 이 항목이 하위 씬에 있는경우 (예: 3D Model 객체에 매핑된 경우), UV 매핑이 이 변환에 통합되어, point 가 실제로 이 항목의 경계 내에 있는 한 화면 좌표에서 이 항목의 좌표로 정확히 변환됩니다. 다른 매핑 함수들은 아직 그런 방식으로 작동하지 않습니다.

참고: 이 함수는 메타 객체 시스템 및 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

Qt Quick 의 ‘개념 - 시각적 좌표’항목도 참조하십시오 .

[invokable] QPointF QQuickItem::mapFromItem(const QQuickItem *item, const QPointF &point) const

item 의 좌표계에서 지정된 point 를 이 항목의 좌표계 내 해당 지점으로 매핑하고, 매핑된 좌표를 반환합니다.

매핑에는 항목의 다음 속성이 사용됩니다: x, y, scale, rotation, transformOrigin 및 transform.

항목들이 서로 다른 장면에 속하는 경우, 매핑에는 두 장면 간의 상대적 위치가 포함됩니다.

item 가 nullptr 인 경우, 이는 point 를 해당 씬의 좌표계에서 매핑합니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

Qt Quick 의 ‘개념 - 시각 좌표’항목도 참조하십시오 .

QPointF QQuickItem::mapFromScene(const QPointF &point) const

장면의 좌표계에서 지정된 ` point `를 이 아이템의 좌표계 내 해당 지점에 매핑하고, 매핑된 좌표를 반환합니다.

매핑에는 항목의 다음 속성이 사용됩니다: x, y, scale, rotation, transformOrigin, transform.

항목들이 서로 다른 장면에 속해 있는 경우, 매핑에는 두 장면 간의 상대적 위치가 포함됩니다.

Qt Quick 의 ‘개념 - 시각적 좌표’항목도 참조하십시오 .

QRectF QQuickItem::mapRectFromItem(const QQuickItem *item, const QRectF &rect) const

item 의 좌표계에서 지정된 rect 를 이 항목의 좌표계 내 해당 직사각형 영역에 매핑하고, 매핑된 직사각형 값을 반환합니다.

매핑에는 항목의 다음 속성이 사용됩니다: x, y, scale, rotation, transformOrigin 및 transform.

항목들이 서로 다른 장면에 속해 있는 경우, 매핑에는 두 장면 간의 상대적 위치가 포함됩니다.

item 가 nullptr 인 경우, 이는 해당 장면의 좌표계에서 rect 를 매핑합니다.

Qt Quick 의 ‘개념 - 시각 좌표’항목도 참조하십시오 .

QRectF QQuickItem::mapRectFromScene(const QRectF &rect) const

장면의 좌표계에서 주어진 rect 를 이 아이템의 좌표계 내의 이에 상응하는 직사각형 영역에 매핑하고, 매핑된 직사각형 값을 반환합니다.

매핑에는 항목의 다음 속성이 사용됩니다: x, y, scale, rotation, transformOrigin 및 transform.

항목들이 서로 다른 장면에 속해 있는 경우, 매핑에는 두 장면 간의 상대적 위치가 포함됩니다.

Qt Quick 의 ‘개념 - 시각 좌표’항목도 참조하십시오 .

QRectF QQuickItem::mapRectToItem(const QQuickItem *item, const QRectF &rect) const

이 항목의 좌표계에서 주어진 rect 를 item 의 좌표계 내 해당 직사각형 영역에 매핑하고, 매핑된 직사각형 값을 반환합니다.

매핑에는 항목의 다음 속성이 사용됩니다: x, y, scale, rotation, transformOrigin 및 transform.

항목들이 서로 다른 장면에 속해 있는 경우, 매핑에는 두 장면 간의 상대적 위치 정보가 포함됩니다.

item 가 nullptr 인 경우, 이는 rect 를 해당 장면의 좌표계로 매핑합니다.

Qt Quick 의 ‘개념 - 시각 좌표’항목도 참조하십시오 .

QRectF QQuickItem::mapRectToScene(const QRectF &rect) const

이 항목의 좌표계에서 주어진 ‘ rect ’를 씬의 좌표계 내의 이에 상응하는 직사각형 영역에 매핑하고, 매핑된 직사각형 값을 반환합니다.

매핑에는 항목의 다음 속성이 사용됩니다: x, y, scale, rotation, transformOrigin 및 transform.

항목들이 서로 다른 장면에 속해 있는 경우, 매핑에는 두 장면 간의 상대적 위치가 포함됩니다.

Qt Quick 의 ‘개념 - 시각적 좌표’항목도 참조하십시오 .

[invokable] QPointF QQuickItem::mapToGlobal(const QPointF &point) const

이 항목의 좌표계에서 주어진 point 를 전역 화면 좌표계 내의 해당 점에 매핑하고, 매핑된 좌표를 반환합니다.

매핑에는 항목의 다음 속성이 사용됩니다: x, y, scale, rotation, transformOrigin 및 transform.

항목들이 서로 다른 장면에 속해 있는 경우, 매핑에는 두 장면 간의 상대적 위치가 포함됩니다.

예를 들어, Qt Quick 컴포넌트에 팝업을 추가할 때 이 정보가 유용할 수 있습니다.

참고: 창 위치는 창 관리자에 의해 결정되며, 이 값은 단지 참고용으로만 처리됩니다. 따라서 결과적인 창 위치가 예상과 다를 수 있습니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

Qt Quick 의 ‘개념 - 시각적 좌표’항목도 참조하십시오 .

[invokable] QPointF QQuickItem::mapToItem(const QQuickItem *item, const QPointF &point) const

이 항목의 좌표계에서 주어진 point 를 item 의 좌표계 내 해당 지점으로 매핑하고, 매핑된 좌표를 반환합니다.

매핑에는 항목의 다음 속성이 사용됩니다: x, y, scale, rotation, transformOrigin 및 transform.

항목들이 서로 다른 장면에 속해 있는 경우, 매핑에는 두 장면 간의 상대적 위치가 포함됩니다.

item 가 nullptr 인 경우, point 를 해당 장면의 좌표계로 매핑합니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

Qt Quick 의 ‘개념 - 시각적 좌표’항목도 참조하십시오 .

QPointF QQuickItem::mapToScene(const QPointF &point) const

이 항목의 좌표계에서 지정된 point 를 씬의 좌표계 내의 해당 지점으로 매핑하고, 매핑된 좌표를 반환합니다.

매핑에는 항목의 다음 속성이 사용됩니다: x, y, scale, rotation, transformOrigin 및 transform.

항목들이 서로 다른 장면에 속해 있는 경우, 매핑에는 두 장면 간의 상대적 위치가 포함됩니다.

Qt Quick 의 ‘개념 - 시각적 좌표’항목도 참조하십시오 .

[virtual protected] void QQuickItem::mouseDoubleClickEvent(QMouseEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 마우스 더블 클릭 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

[virtual protected] void QQuickItem::mouseMoveEvent(QMouseEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 특정 항목에 대한 마우스 이동 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

마우스 이동 이벤트를 수신하려면, 선행하는 마우스 누름 이벤트를 수락해야 하며(예를 들어, ` mousePressEvent()`를 재정의하는 방식), ` acceptedMouseButtons()`는 해당 마우스 버튼을 반환해야 합니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

[virtual protected] void QQuickItem::mousePressEvent(QMouseEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 마우스 클릭 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

마우스 클릭 이벤트를 수신하려면 acceptedMouseButtons() 함수가 해당 마우스 버튼을 반환해야 합니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

[virtual protected] void QQuickItem::mouseReleaseEvent(QMouseEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 특정 항목에 대한 마우스 릴리스 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

마우스 릴리스 이벤트를 수신하려면, 선행하는 마우스 누름 이벤트를 수락해야 하며(예를 들어, ` mousePressEvent()`를 오버라이드하여), ` acceptedMouseButtons()`는 해당 마우스 버튼을 반환해야 합니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

[virtual protected] void QQuickItem::mouseUngrabEvent()

이 이벤트 핸들러는 하위 클래스에서 재구현하여, 이 항목에서 마우스 해제 이벤트가 발생했을 때 알림을 받을 수 있습니다.

[invokable] QQuickItem *QQuickItem::nextItemInFocusChain(bool forward = true)

포커스 체인에서 이 항목의 바로 옆에 있는 항목을 반환합니다. forward 가 true 인 경우, 또는 해당 매개변수가 제공되지 않은 경우, 앞으로 방향의 다음 항목을 반환합니다. forward 가 false 인 경우, 뒤로 방향의 다음 항목을 반환합니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

void QQuickItem::polish()

이 항목에 대한 폴리싱 작업을 예약합니다.

씬 그래프가 이 요청을 처리할 때, 이 항목에 대해 updatePolish()을 호출합니다.

updatePolish(), QQuickTest::qIsPolishScheduled() 및 ensurePolished()도 참조하십시오 .

[virtual protected] void QQuickItem::releaseResources()

이 함수는 항목이 ` QQuickItem::updatePaintNode()`에서 반환된 노드들에 의해 아직 관리되지 않는 그래픽 리소스를 해제해야 할 때 호출됩니다.

이는 항목이 이전에 렌더링되던 창에서 제거되기 직전에 발생합니다. 이 함수가 호출될 때 해당 항목은 반드시 window 를 가지고 있습니다.

이 함수는 GUI 스레드에서 호출되며, 렌더링 스레드의 상태(사용 중인 경우)는 알 수 없습니다. 객체는 직접 삭제해서는 안 되며, 대신 QQuickWindow::scheduleRenderJob()을 사용하여 정리 일정을 잡아야 합니다.

Graphics Resource Handling도 참조하십시오 .

QQuickItem *QQuickItem::scopedFocusItem() const

이 항목이 포커스 범위인 경우, 포커스 체인 내에서 현재 포커스가 설정된 항목을 반환합니다.

이 항목이 포커스 스코프가 아닌 경우 ` nullptr `를 반환합니다.

void QQuickItem::setAcceptHoverEvents(bool enabled)

enabled 가 true인 경우, 이 항목이 호버 이벤트를 수신하도록 설정합니다. 그렇지 않은 경우, 이 항목은 호버 이벤트를 수신하지 않습니다.

acceptHoverEvents()도 참조하십시오 .

void QQuickItem::setAcceptTouchEvents(bool enabled)

enabled 가 true인 경우, 이 항목이 터치 이벤트를 수신하도록 설정합니다. 그렇지 않은 경우, 이 항목은 터치 이벤트를 수신하지 않습니다.

acceptTouchEvents()도 참조하십시오 .

void QQuickItem::setAcceptedMouseButtons(Qt::MouseButtons buttons)

이 항목이 허용하는 마우스 버튼을 ` buttons`로 설정합니다.

참고: Qt5에서는 setAcceptedMouseButtons()를 호출하면 항목이 마우스 이벤트뿐만 아니라 터치 이벤트도 암시적으로 수신하게 되었지만, 이를 구독하려면 setAcceptTouchEvents()를 호출하는 것이 권장되었습니다. Qt 6에서는 계속해서 터치 이벤트를 수신하려면 setAcceptTouchEvents()를 호출해야 합니다.

acceptedMouseButtons()도 참조하십시오 .

void QQuickItem::setCursor(const QCursor &cursor)

이 항목에 대해 ‘ cursor ’ 모양을 설정합니다.

cursor() 및 unsetCursor()도 참조하십시오 .

void QQuickItem::setFiltersChildMouseEvents(bool filter)

이 항목의 자식 항목을 대상으로 하는 포인터 이벤트를 이 항목을 통해 필터링할지 여부를 설정합니다.

filter 가 true인 경우, 자식 항목에 대해 포인터 이벤트가 발생하면 childMouseEventFilter()가 호출됩니다.

filtersChildMouseEvents()도 참조하십시오 .

void QQuickItem::setFlag(QQuickItem::Flag flag, bool enabled = true)

enabled 가 true인 경우, 이 항목에 대해 지정된 ‘ flag ’을 활성화합니다. enabled 가 false인 경우, 이 플래그는 비활성화됩니다.

이 설정들은 항목에 대한 다양한 힌트를 제공합니다. 예를 들어, ` ItemClipsChildrenToShape ` 플래그는 이 항목의 모든 자식 요소가 항목 영역 내에 맞도록 잘려야 함을 나타냅니다.

void QQuickItem::setFlags(QQuickItem::Flags flags)

이 항목에 대해 지정된 ‘ flags ’ 기능을 활성화합니다.

flags() 및 setFlag()도 참조하십시오 .

void QQuickItem::setFocusPolicy(Qt::FocusPolicy policy)

이 항목의 포커스 정책을 ‘ policy ’로 설정합니다.

참고: focusPolicy 속성의세터 함수입니다.

focusPolicy()도 참조하십시오 .

void QQuickItem::setKeepMouseGrab(bool keep)

마우스 입력을 이 항목에만 독점적으로 유지할지 여부를 설정합니다.

이는 미리 정의된 제스처가 발생한 후 마우스 상호작용을 확보하고 유지하고자 하는 항목에 유용합니다. 예를 들어, 수평 마우스 이동에 관심이 있는 항목은 임계값을 초과하면 ` keepMouseGrab `를 `true`로 설정할 수 있습니다. ` keepMouseGrab `가 `true`로 설정되면 필터링 항목은 마우스 이벤트에 반응하지 않습니다.

keep 가 false인 경우, 필터링 항목이 그랩을 가로챌 수 있습니다. 예를 들어, Flickable 는 사용자가 뷰포트를 이동하기 시작한 것을 감지하면 마우스 그랩을 가로채려고 시도할 수 있습니다.

keepMouseGrab()도 참조하십시오 .

void QQuickItem::setKeepTouchGrab(bool keep)

이 아이템이 잡은 터치 지점이 해당 아이템에만 독점적으로 유지되도록 할지 여부를 설정합니다.

이는 미리 정의된 제스처에 따라 특정 터치 포인트를 확보하고 유지하고자 하는 항목에 유용합니다. 예를 들어, 수평 방향의 터치 포인트 이동에 관심이 있는 항목은 임계값을 초과하면 setKeepTouchGrab을 true로 설정할 수 있습니다. setKeepTouchGrab이 true로 설정되면, 필터링 항목은 해당 터치 포인트에 반응하지 않습니다.

keep 가 false인 경우, 필터링 항목이 그랩을 가로챌 수 있습니다. 예를 들어, Flickable 는 사용자가 뷰포트를 이동하기 시작한 것을 감지하면 터치 포인트 그랩을 가로채려고 시도할 수 있습니다.

keepTouchGrab() 및 setKeepMouseGrab()도 참조하십시오 .

void QQuickItem::setSize(const QSizeF &size)

항목의 크기를 size 로 설정합니다. 이 메서드는 너비와 높이에 대한 기존 바인딩을 유지하므로, 바인딩이 다시 실행되도록 유발하는 변경 사항이 발생하면 설정된 값이 덮어쓰게 됩니다.

size, setWidth 및 setHeight도 참조하십시오 .

QSizeF QQuickItem::size() const

항목의 크기를 반환합니다.

setSize, width 및 height도 참조하십시오 .

void QQuickItem::stackAfter(const QQuickItem *sibling)

이 항목을 자식 목록 내에서 지정한 형제 항목 다음의 인덱스로 이동합니다. 자식 항목의 순서는 시각적 중첩 순서와 탭 포커스 이동 순서 모두에 영향을 미칩니다.

두 항목의 z 값이 모두 동일하다고 가정할 때, 이 작업으로 인해 ` sibling `가 이 항목 아래에 렌더링됩니다.

두 항목 모두 ` activeFocusOnTab `가 ` true`로 설정된 경우, 탭 포커스 순서도 변경되어 ` sibling `가 이 항목보다 먼저 포커스를 받게 됩니다.

지정된 sibling 은 이 항목의 형제 요소여야 합니다. 즉, 두 항목은 동일한 직접 상위 요소( parent)를 가져야 합니다.

Qt Quick 의 ‘개념 - 시각적 부모(Concepts - Visual Parent)’항목도 참조하십시오 .

void QQuickItem::stackBefore(const QQuickItem *sibling)

이 항목을 자식 목록 내에서 지정된 동급 항목 바로 앞의 인덱스로 이동합니다. 자식 항목의 순서는 시각적 중첩 순서와 탭 포커스 이동 순서 모두에 영향을 미칩니다.

두 항목의 z 값이 동일하다고 가정할 때, 이 작업으로 인해 ` sibling `가 이 항목 위에 렌더링됩니다.

두 항목 모두 ` activeFocusOnTab `가 ` true`로 설정된 경우, 탭 포커스 순서도 변경되어 ` sibling `가 이 항목 다음에 포커스를 받게 됩니다.

지정된 sibling 은 이 항목의 형제 노드여야 합니다. 즉, 두 항목은 동일한 직접 상위 노드( parent)를 가져야 합니다.

Qt Quick 의 ‘개념 - 시각적 부모(Concepts - Visual Parent)’항목도 참조하십시오 .

[virtual] QSGTextureProvider *QQuickItem::textureProvider() const

항목에 대한 텍스처 프로바이더를 반환합니다. 기본 구현은 ` nullptr`를 반환합니다.

이 함수는 렌더링 스레드에서만 호출할 수 있습니다.

[virtual protected] void QQuickItem::touchEvent(QTouchEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 항목에 대한 터치 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

[virtual protected] void QQuickItem::touchUngrabEvent()

이 이벤트 핸들러는 하위 클래스에서 재구현하여, 이 항목에서 터치 해제 이벤트가 발생했을 때 알림을 받을 수 있습니다.

void QQuickItem::unsetCursor()

이 항목의 커서 모양을 지웁니다.

cursor() 및 setCursor()도 참조하십시오 .

[slot] void QQuickItem::update()

이 항목에 대해 updatePaintNode() 호출을 예약합니다.

해당 항목이 QQuickWindow 에 표시되어 있는 경우, QQuickItem::updatePaintNode() 호출은 항상 발생합니다.

QQuickItem::ItemHasContents 를 명시한 항목만 QQuickItem::update()를 호출할 수 있습니다.

[protected] void QQuickItem::updateInputMethod(Qt::InputMethodQueries queries = Qt::ImQueryInput)

필요한 경우 쿼리 값이 업데이트되었음을 입력 방식에 알립니다. ` queries `는 변경된 속성을 나타냅니다.

[virtual protected] QSGNode *QQuickItem::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *updatePaintNodeData)

아이템의 상태를 씬 그래프와 동기화해야 할 시점에 렌더 스레드에서 호출됩니다.

사용자가 해당 항목에 대해 ` QQuickItem::ItemHasContents ` 플래그를 설정한 경우, 이 함수는 ` QQuickItem::update()`의 결과로 호출됩니다.

이 함수는 해당 아이템에 대한 씬 그래프 하위 트리의 루트를 반환해야 합니다. 대부분의 구현에서는 이 아이템의 시각적 표현을 포함하는 단일 QSGGeometryNode 를 반환합니다. oldNode 는 이 함수가 마지막으로 호출되었을 때 반환된 노드입니다. updatePaintNodeData 는 이 QQuickItem 와 연관된 QSGTransformNode 에 대한 포인터를 제공합니다.

QSGNode *MyItem::updatePaintNode(QSGNode *node, UpdatePaintNodeData *)
{
    QSGSimpleRectNode *n = static_cast<QSGSimpleRectNode *>(node);
    if (!n) {
        n = new QSGSimpleRectNode();
        n->setColor(Qt::red);
    }
    n->setRect(boundingRect());
    return n;
}

이 함수가 실행되는 동안 메인 스레드는 차단되므로, 메인 스레드에서 QQuickItem 인스턴스 및 기타 객체의 값을 읽는 것은 안전합니다.

QSGNode::markDirty() 호출이나 노드 추가 및 제거와 같이 QQuickItem::updatePaintNode() 호출이 실제 장면 그래프 변경을 초래하지 않는 경우, 시각적 결과가 동일하므로 기본 구현에서 장면을 다시 렌더링하지 않기로 결정할 수 있습니다.

경고: 그래픽 작업과 장면 그래프와의 상호 작용은 반드시 렌더링 스레드에서만, 주로 QQuickItem::updatePaintNode() 호출 중에 이루어져야합니다 . 가장 좋은 원칙은 QQuickItem::updatePaintNode() 함수 내부에서는 "QSG" 접두사가 붙은 클래스만 사용하는 것입니다.

경고: 이 함수는 렌더링 스레드에서 호출됩니다. 즉, 생성된 모든 QObject나 스레드 로컬 스토리지(TLS)는 렌더링 스레드와 연관되므로, 이 함수 내에서 렌더링 이외의 작업을 수행할 때는 주의해야 합니다. 마찬가지로 시그널의 경우에도 렌더링 스레드에서 발신되므로, 대개 큐에 추가된 연결을 통해 전달됩니다.

참고: QSG 접두사가 붙은모든 클래스는 오로지 씬 그래프의 렌더링 스레드에서만 사용해야 합니다. 자세한 내용은 씬 그래프 및 렌더링을 참조하십시오.

QSGMaterial, QSGGeometryNode, QSGGeometry, QSGFlatColorMaterial, QSGTextureMaterial, QSGNode::markDirty() 및 Graphics Resource Handling도 참조하십시오 .

[virtual protected] void QQuickItem::updatePolish()

이 함수는 해당 항목에 필요한 모든 레이아웃을 처리해야 합니다.

polish()가 호출되면, 씬 그래프는 이 항목에 대한 폴리시 이벤트를 스케줄링합니다. 씬 그래프가 이 항목을 렌더링할 준비가 되면, 다음 프레임을 렌더링하기 전에 updatePolish()를 호출하여 필요한 항목 레이아웃을 수행합니다.

ensurePolished()도 참조하십시오 .

QQuickItem *QQuickItem::viewportItem() const

ItemObservesViewport 플래그가 설정된 경우, ItemIsViewport 플래그가 설정된 가장 가까운 부모 항목을 반환합니다. 해당 플래그가 설정되지 않았거나 다른 뷰포트 항목이 발견되지 않은 경우, 창의 contentItem을 반환합니다.

뷰포트 항목이 없고 이 항목이 창에 표시되지 않는 경우에만 ` nullptr `를 반환합니다.

clipRect()도 참조하십시오 .

[virtual protected] void QQuickItem::wheelEvent(QWheelEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 특정 항목에 대한 휠 이벤트를 수신할 수 있습니다. 이벤트 정보는 ` event ` 매개변수를 통해 제공됩니다.

이 이벤트는 기본적으로 수락되므로, 이 함수를 재구현할 때 이벤트를 명시적으로 수락할 필요는 없습니다. 이벤트를 수락하지 않으려면 event->ignore() 를 호출하십시오.

[protected] bool QQuickItem::widthValid() const

width 속성이 명시적으로 설정되었는지 여부를 반환합니다.

QQuickWindow *QQuickItem::window() const

이 아이템이 렌더링되는 창을 반환합니다.

이 항목은 씬에 할당되기 전까지는 창을 가지지 않습니다. ` windowChanged()` 신호는 항목이 씬에 추가될 때와 씬에서 제거될 때 모두 알림을 제공합니다.

[signal] void QQuickItem::windowChanged(QQuickWindow *window)

이 신호는 아이템의 window 가 변경될 때 발생합니다.

© 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.