이 페이지에서

QGraphicsLayoutItem Class

QGraphicsLayoutItem 클래스를 상속받으면 사용자 정의 항목을 레이아웃에서 관리할 수 있습니다. 더 보기...

헤더: #include <QGraphicsLayoutItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
상속받은 항목:

QGraphicsLayout 그리고 QGraphicsWidget

공개 함수

QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)
virtual ~QGraphicsLayoutItem()
QRectF contentsRect() const
QSizeF effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
QRectF geometry() const
virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const
QGraphicsItem *graphicsItem() const
(since 6.0) virtual bool isEmpty() const
bool isLayout() const
qreal maximumHeight() const
QSizeF maximumSize() const
qreal maximumWidth() const
qreal minimumHeight() const
QSizeF minimumSize() const
qreal minimumWidth() const
bool ownedByLayout() const
QGraphicsLayoutItem *parentLayoutItem() const
qreal preferredHeight() const
QSizeF preferredSize() const
qreal preferredWidth() const
virtual void setGeometry(const QRectF &rect)
void setMaximumHeight(qreal height)
void setMaximumSize(const QSizeF &size)
void setMaximumSize(qreal w, qreal h)
void setMaximumWidth(qreal width)
void setMinimumHeight(qreal height)
void setMinimumSize(const QSizeF &size)
void setMinimumSize(qreal w, qreal h)
void setMinimumWidth(qreal width)
void setParentLayoutItem(QGraphicsLayoutItem *parent)
void setPreferredHeight(qreal height)
void setPreferredSize(const QSizeF &size)
void setPreferredSize(qreal w, qreal h)
void setPreferredWidth(qreal width)
void setSizePolicy(const QSizePolicy &policy)
void setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType)
QSizePolicy sizePolicy() const
virtual void updateGeometry()

보호된 함수

void setGraphicsItem(QGraphicsItem *item)
void setOwnedByLayout(bool ownership)
virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const = 0

상세 설명

QGraphicsLayoutItem은 QGraphicsLayout 에 의해 배열된 모든 객체의 크기, 크기 정책 및 크기 힌트를 설명하는 일련의 가상 함수를 정의하는 추상 클래스입니다. QGraphicsLayoutItem의 함수 대부분은 하위 클래스의 공개 API에도 포함되어 있으므로, 이 API에는 항목 자체와 항목 사용자 모두와 관련된 함수가 포함되어 있습니다.

대부분의 경우, QGraphicsWidget 및 QGraphicsLayout 과 같은 기존의 레이아웃 인식 클래스가 이미 필요한 기능을 제공합니다. 그러나 이러한 클래스를 상속하면 레이아웃(QGraphicsWidget)이나 사용자 정의 레이아웃(QGraphicsLayout)과 잘 작동하는 그래픽 요소를 모두 만들 수 있습니다.

QGraphicsLayoutItem의 서브클래스 생성

QGraphicsLayoutItem의 서브클래스를 생성하고 가상 함수를 재구현하면, 레이아웃이 QGraphicsWidget 및 QGraphicsLayout 을 포함한 다른 QGraphicsLayoutItem들과 함께 해당 항목의 크기를 조정하고 위치를 지정할 수 있게 됩니다.

먼저 중요한 함수인 protected 함수 sizeHint()과 public 함수 setGeometry()을 재구현하는 것부터 시작할 수 있습니다. 항목이 지오메트리의 즉각적인 변경 사항을 인식하도록 하려면 updateGeometry()도 재구현할 수 있습니다.

지오메트리, 크기 힌트 및 크기 정책은 아이템의 크기와 위치에 영향을 미칩니다. setGeometry()를 호출하면 항상 아이템의 크기와 위치가 즉시 조정됩니다. 일반적으로 이 함수는 레이아웃이 활성화된 후 QGraphicsLayout 에 의해 호출되지만, 아이템 사용자가 언제든지 직접 호출할 수도 있습니다.

sizeHint() 함수는 항목의 최소, 선호 및 최대 크기 힌트를 반환합니다. setMinimumSize(), setPreferredSize() 또는 setMaximumSize()을 호출하여 이러한 속성을 재정의할 수 있습니다. 또한 원하는 경우 setMinimumWidth()이나 setMaximumHeight()과 같은 함수를 사용하여 너비나 높이 구성 요소만 설정할 수도 있습니다.

반면, effectiveSizeHint() 함수는 주어진 Qt::SizeHint 에 대한 크기 힌트를 반환하며, 반환된 크기가 최소 및 최대 크기와 크기 힌트 범위 내에 포함되도록 보장합니다. setSizePolicy()를 호출하여 항목의 수직 및 수평 크기 정책을 설정할 수 있습니다. sizePolicy 속성은 레이아웃 시스템에서 이 항목이 어떻게 확장되거나 축소되는 것을 선호하는지를 설명하는 데 사용됩니다.

QGraphicsLayoutItem의 중첩

QGraphicsLayoutItems는 하위 레이아웃을 포함할 수 있는 레이아웃과 마찬가지로 다른 QGraphicsLayoutItems 내에 중첩될 수 있습니다. 이는 QGraphicsLayoutItem의 protected 생성자에 QGraphicsLayoutItem 포인터를 전달하거나, ` setParentLayoutItem()`를 호출하여 수행할 수 있습니다. parentLayoutItem() 함수는 해당 항목의 레이아웃 항목(layoutItem) 부모에 대한 포인터를 반환합니다. 항목의 부모가 ` nullptr `이거나, 부모가 ` QGraphicsItem`을 상속받지 않은 경우, ` parentLayoutItem()` 함수는 ` nullptr`을 반환합니다. ` isLayout()`는 QGraphicsLayoutItem 하위 클래스 자체가 레이아웃인 경우 ` true `을 반환하고, 그렇지 않은 경우 false를 반환합니다.

Qt는 Graphics View Framework에서 레이아웃 기능을 제공하기 위해 QGraphicsLayoutItem을 사용하지만, 향후 Qt 전반으로 그 사용 범위가 확대될 수 있습니다.

QGraphicsWidget, QGraphicsLayout, QGraphicsLinearLayout 및 QGraphicsGridLayout도 참조하십시오 .

멤버 함수 문서

QGraphicsLayoutItem::QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)

QGraphicsLayoutItem 객체를 생성합니다. ` parent `는 이 객체의 부모가 됩니다. ` isLayout `가 true인 경우 해당 항목은 레이아웃이 되며, 그렇지 않은 경우 ` isLayout `는 false가 됩니다.

[virtual noexcept] QGraphicsLayoutItem::~QGraphicsLayoutItem()

QGraphicsLayoutItem 객체를 삭제합니다.

QRectF QGraphicsLayoutItem::contentsRect() const

로컬 좌표계에서 콘텐츠 사각형을 반환합니다.

contents rect는 관련 레이아웃이 하위 항목을 배열할 때 사용하는 하위 사각형을 정의합니다. 이 함수는 항목의 geometry()을 해당 contents margins에 따라 조정하는 편의 함수입니다. getContentsMargins()는 항목의 contents margins를 반환하도록 재구현할 수 있는 가상 함수라는 점에 유의하십시오.

getContentsMargins() 및 geometry()도 참조하십시오 .

QSizeF QGraphicsLayoutItem::effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

이 QGraphicsLayoutItem 에 대한 유효 크기 힌트를 반환합니다.

which 는 해당 크기 힌트입니다. ` constraint `는 유효한 크기 힌트를 계산할 때 특수한 제약 조건을 정의하는 선택적 인자입니다. 기본적으로 ` constraint `는 ` QSizeF`(-1, -1)이며, 이는 크기 힌트에 대한 제약 조건이 없음을 의미합니다.

특정 너비나 높이에 대해 위젯의 크기 힌트를 지정하려면, constraint 에 고정된 치수를 전달하면 됩니다. 이는 수직 또는 수평 방향 중 한 방향으로만 확장될 수 있고, 너비나 높이를 특정 값으로 설정해야 하는 위젯에 유용합니다.

예를 들어, 열 너비 200에 맞춰진 텍스트 단락 항목은 세로로 확장될 수 있습니다. QSizeF(200, -1)을 제약 조건으로 전달하면 적절한 최소, 선호 및 최대 높이를 얻을 수 있습니다.

QGraphicsLayoutItem 의 서브클래스에서 sizeHint()을 재구현하거나, 다음 함수 중 하나( setMinimumSize(), setPreferredSize 또는 setMaximumSize() 또는 이 둘의 조합)를 호출하여 유효한 크기 힌트를 조정할 수 있습니다.

이 함수는 각 크기 힌트를 캐시하며, constraint 가 지정되지 않았고 updateGeometry()이 호출된 경우가 아닌 한, which 의 각 값에 대해 sizeHint()이 단 한 번만 호출되도록 보장합니다.

sizeHint()도 참조하십시오 .

QRectF QGraphicsLayoutItem::geometry() const

항목의 기하학적 정보(예: 위치 및 크기)를 ` QRectF` 형식으로 반환합니다. 이 함수는 ` QRectF`(`pos()`, `size()`)와 동일합니다.

setGeometry()도 참조하십시오 .

[virtual] void QGraphicsLayoutItem::getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const

이 가상 함수는 이 QGraphicsLayoutItem 에 대한 left, top, right 및 bottom 콘텐츠 여백을 제공합니다. 기본 구현에서는 모든 콘텐츠 여백이 0이라고 가정합니다. 매개변수는 qreals에 저장된 값을 가리킵니다. 포인터 중 하나라도 nullptr 인 경우, 해당 값은 업데이트되지 않습니다.

QGraphicsWidget::setContentsMargins()도 참조하십시오 .

QGraphicsItem *QGraphicsLayoutItem::graphicsItem() const

이 레이아웃 항목이 나타내는 ` QGraphicsItem `를 반환합니다. ` QGraphicsWidget `의 경우 해당 항목 자체를 반환합니다. 사용자 정의 항목의 경우 집계된 값을 반환할 수 있습니다.

setGraphicsItem()도 참조하십시오 .

[virtual, since 6.0] bool QGraphicsLayoutItem::isEmpty() const

이 항목이 비어 있는 경우, 즉 내용이 없어서 공간을 차지해서는 안 되는 경우 true 를 반환합니다.

true 기본 구현에서는 항목이 숨겨진 경우, 해당 항목의 ` size policy `에 `retainSizeWhenHidden`이 true

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

sizePolicy()도 참조하십시오 .

bool QGraphicsLayoutItem::isLayout() const

이 QGraphicsLayoutItem 가 레이아웃인 경우(예: 다른 QGraphicsLayoutItem 객체들을 배열하는 객체가 이를 상속받은 경우) true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

QGraphicsLayout도 참조하십시오 .

qreal QGraphicsLayoutItem::maximumHeight() const

최대 높이를 반환합니다.

setMaximumHeight(), setMaximumSize(), maximumSize()도 참조하십시오 .

QSizeF QGraphicsLayoutItem::maximumSize() const

최대 크기를 반환합니다.

setMaximumSize(), minimumSize(), preferredSize(), Qt::MaximumSize 및 sizeHint()도 참조하십시오 .

qreal QGraphicsLayoutItem::maximumWidth() const

최대 너비를 반환합니다.

setMaximumWidth(), setMaximumSize(), maximumSize()도 참조하십시오 .

qreal QGraphicsLayoutItem::minimumHeight() const

최소 높이를 반환합니다.

setMinimumHeight(), setMinimumSize(), minimumSize()도 참조하십시오 .

QSizeF QGraphicsLayoutItem::minimumSize() const

최소 크기를 반환합니다.

setMinimumSize(), preferredSize(), maximumSize(), Qt::MinimumSize 및 sizeHint()도 참조하십시오 .

qreal QGraphicsLayoutItem::minimumWidth() const

최소 너비를 반환합니다.

setMinimumWidth(), setMinimumSize() 및 minimumSize()도 참조하십시오 .

bool QGraphicsLayoutItem::ownedByLayout() const

레이아웃이 소멸자에서 이 항목을 삭제해야 하는지 여부를 반환합니다. true인 경우, 레이아웃이 해당 항목을 삭제합니다. false인 경우, 다른 객체가 해당 항목에 대한 소유권을 가지고 있는 것으로 간주되며, 레이아웃은 이 항목을 삭제하지 않습니다.

항목이 ` QGraphicsItem `와 ` QGraphicsLayoutItem `를 모두 상속받는 경우(예: ` QGraphicsWidget `), 해당 항목은 사실상 두 개의 소유권 계층 구조에 속하게 됩니다. 이 속성은 레이아웃이 소멸될 때 자식 항목들을 어떻게 처리해야 하는지를 지정합니다. QGraphicsWidget 의 경우, 레이아웃이 삭제될 때 자식 항목을 삭제하지 않는 것이 바람직합니다(자식 항목들도 그래픽 항목 계층 구조의 일부이기 때문입니다).

기본적으로 이 값은 ` QGraphicsLayoutItem`에서 `false`로 초기화되지만, ` QGraphicsLayout `에 의해 재정의되어 `true`를 반환합니다. 이는 ` QGraphicsLayout `가 일반적으로 ` QGraphicsItem ` 계층 구조의 일부가 아니므로, 부모 레이아웃이 이를 삭제해야 하기 때문입니다. 하위 클래스는 ` setOwnedByLayout(true)`를 호출하여 이 기본 동작을 재정의할 수 있습니다.

setOwnedByLayout()도 참조하십시오 .

QGraphicsLayoutItem *QGraphicsLayoutItem::parentLayoutItem() const

이 ` QGraphicsLayoutItem`의 부모 클래스를 반환하며, 부모가 없거나 부모가 ` QGraphicsLayoutItem `를 상속받지 않은 경우에는 ` nullptr `를 반환합니다(`QGraphicsLayoutItem `는 ` QObject`에서 파생된 클래스들과의 다중 상속을 통해 자주 사용됩니다).

setParentLayoutItem()도 참조하십시오 .

qreal QGraphicsLayoutItem::preferredHeight() const

선호하는 높이를 반환합니다.

setPreferredHeight(), setPreferredSize(), preferredSize()도 참조하십시오 .

QSizeF QGraphicsLayoutItem::preferredSize() const

선호하는 크기를 반환합니다.

setPreferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize 및 sizeHint()도 참조하십시오 .

qreal QGraphicsLayoutItem::preferredWidth() const

선호하는 너비를 반환합니다.

setPreferredWidth(), setPreferredSize(), preferredSize()도 참조하십시오 .

[virtual] void QGraphicsLayoutItem::setGeometry(const QRectF &rect)

이 가상 함수는 ` QGraphicsLayoutItem `의 기하학적 좌표를 ` rect`로 설정합니다. 이 좌표는 부모 좌표계 기준이며(예를 들어, ` rect `의 왼쪽 상단 모서리는 부모 좌표계에서 항목의 위치와 동일합니다).

지오메트리 업데이트를 수신하려면 ` QGraphicsLayoutItem `의 하위 클래스에서 이 함수를 재구현해야 합니다. 레이아웃은 재배치를 수행할 때 이 함수를 호출합니다.

rect 가 minimumSize 및 maximumSize 의 경계 외부에 있는 경우, 허용되는 경계 내에 포함되도록 가장 가까운 크기로 조정됩니다.

geometry()도 참조하십시오 .

[protected] void QGraphicsLayoutItem::setGraphicsItem(QGraphicsItem *item)

QGraphicsLayoutItem 가 QGraphicsItem 을 나타내며, QGraphicsLayout 의 자동 부모 재설정 기능을 활용하려면 이 값을 설정해야 합니다. item 을 삭제하고 레이아웃 항목을 삭제하지 않을 경우, 매달린 포인터가 발생하지 않도록 setGraphicsItem(nullptr)을 직접 호출해야 한다는 점에 유의하십시오.

graphicsItem()도 참조하십시오 .

void QGraphicsLayoutItem::setMaximumHeight(qreal height)

최대 높이를 height 로 설정합니다.

maximumHeight(), setMaximumSize() 및 maximumSize()도 참조하십시오 .

void QGraphicsLayoutItem::setMaximumSize(const QSizeF &size)

최대 크기를 size 로 설정합니다. 이 속성은 Qt::MaximumSize 에 대해 sizeHint()을 재정의하며, effectiveSizeHint()이 size 보다 큰 크기를 반환하지 않도록 보장합니다. 최대 크기 설정을 해제하려면 유효하지 않은 크기를 사용하십시오.

maximumSize(), minimumSize(), preferredSize(), Qt::MaximumSize 및 sizeHint()도 참조하십시오 .

void QGraphicsLayoutItem::setMaximumSize(qreal w, qreal h)

이 편의 함수는 setMaximumSize(QSizeF(w, h))를 호출하는 것과 동일합니다.

maximumSize(), setMinimumSize(), setPreferredSize() 및 sizeHint()도 참조하십시오 .

void QGraphicsLayoutItem::setMaximumWidth(qreal width)

최대 너비를 width 로 설정합니다.

maximumWidth(), setMaximumSize() 및 maximumSize()도 참조하십시오 .

void QGraphicsLayoutItem::setMinimumHeight(qreal height)

최소 높이를 height 로 설정합니다.

minimumHeight(), setMinimumSize() 및 minimumSize()도 참조하십시오 .

void QGraphicsLayoutItem::setMinimumSize(const QSizeF &size)

최소 크기를 size 로 설정합니다. 이 속성은 Qt::MinimumSize 에 대해 sizeHint()을 재정의하며, effectiveSizeHint()가 size 보다 작은 크기를 반환하지 않도록 보장합니다. 최소 크기를 해제하려면 유효하지 않은 크기를 사용하십시오.

minimumSize(), maximumSize(), preferredSize(), Qt::MinimumSize, sizeHint(), setMinimumWidth() 및 setMinimumHeight()도 참조하십시오 .

void QGraphicsLayoutItem::setMinimumSize(qreal w, qreal h)

이 편의 함수는 setMinimumSize(QSizeF(w, h))를 호출하는 것과 동일합니다.

minimumSize(), setMaximumSize(), setPreferredSize() 및 sizeHint()도 참조하십시오 .

void QGraphicsLayoutItem::setMinimumWidth(qreal width)

최소 너비를 width 로 설정합니다.

minimumWidth(), setMinimumSize() 및 minimumSize()도 참조하십시오 .

[protected] void QGraphicsLayoutItem::setOwnedByLayout(bool ownership)

레이아웃이 소멸자에서 이 항목을 삭제할지 여부를 설정합니다. 레이아웃이 이 항목을 삭제하려면 ` ownership `가 `true`여야 합니다.

ownedByLayout()도 참조하십시오 .

void QGraphicsLayoutItem::setParentLayoutItem(QGraphicsLayoutItem *parent)

이 QGraphicsLayoutItem 의 상위 노드를 parent 로 설정합니다.

parentLayoutItem()도 참조하십시오 .

void QGraphicsLayoutItem::setPreferredHeight(qreal height)

선호하는 높이를 height 로 설정합니다.

preferredHeight(), preferredWidth(), setPreferredSize() 및 preferredSize()도 참조하십시오 .

void QGraphicsLayoutItem::setPreferredSize(const QSizeF &size)

선호 크기를 size 로 설정합니다. 이 속성은 Qt::PreferredSize 에 대해 sizeHint()을 재정의하며, effectiveSizeHint()에 대한 기본값을 제공합니다. 선호 크기를 해제하려면 유효하지 않은 크기를 사용하십시오.

preferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize 및 sizeHint()도 참조하십시오 .

void QGraphicsLayoutItem::setPreferredSize(qreal w, qreal h)

이 편의 함수는 setPreferredSize(QSizeF(w, h))를 호출하는 것과 동일합니다.

preferredSize(), setMaximumSize(), setMinimumSize() 및 sizeHint()도 참조하십시오 .

void QGraphicsLayoutItem::setPreferredWidth(qreal width)

선호하는 너비를 width 로 설정합니다.

preferredWidth(), preferredHeight(), setPreferredSize() 및 preferredSize()도 참조하십시오 .

void QGraphicsLayoutItem::setSizePolicy(const QSizePolicy &policy)

크기 정책을 policy 로 설정합니다. 크기 정책은 레이아웃에 항목이 배치될 때 해당 항목이 가로 및 세로 방향으로 어떻게 확장되어야 하는지를 설명합니다.

QGraphicsLayoutItem의 기본 크기 정책은 (QSizePolicy::Fixed, QSizePolicy::Fixed, QSizePolicy::DefaultType)이지만, 하위 클래스에서 기본값을 변경하는 경우가 흔합니다. 예를 들어, QGraphicsWidget 의 기본값은 (QSizePolicy::Preferred, QSizePolicy::Preferred, QSizePolicy::DefaultType)입니다.

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

void QGraphicsLayoutItem::setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType)

이 함수는 setSizePolicy(QSizePolicy(hPolicy, vPolicy, controlType))를 호출하는 것과 동일합니다.

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

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

[pure virtual protected] QSizeF QGraphicsLayoutItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

which 이 순수 가상 함수는 constraint 의 너비나 높이를 사용하여 출력을 제한함으로써, QGraphicsLayoutItem 의 에 대한 크기 힌트를 반환합니다.

QGraphicsLayoutItem 의 서브클래스에서 이 함수를 재구현하여 항목에 필요한 크기 힌트를 제공하십시오.

effectiveSizeHint()도 참조하십시오 .

QSizePolicy QGraphicsLayoutItem::sizePolicy() const

현재 크기 정책을 반환합니다.

setSizePolicy() 및 QWidget::sizePolicy()도 참조하십시오 .

[virtual] void QGraphicsLayoutItem::updateGeometry()

이 가상 함수는 캐시된 크기 힌트 정보를 모두 삭제합니다. ` sizeHint()` 함수의 반환 값을 변경할 때는 항상 이 함수를 호출해야 합니다. 하위 클래스는 이 함수를 재구현할 때 항상 기본 구현을 호출해야 합니다.

effectiveSizeHint()도 참조하십시오 .

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