QGraphicsWidget Class
QGraphicsWidget 클래스는 QGraphicsScene 내의 모든 위젯 항목에 대한 기본 클래스입니다. 더 보기...
| 헤더: | #include <QGraphicsWidget> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 상속: | QGraphicsObject 그리고 QGraphicsLayoutItem |
| 상속받는 클래스: |
공개 유형
| enum { Type } |
속성
|
|
공개 함수
| QGraphicsWidget(QGraphicsItem *parent = nullptr, Qt::WindowFlags wFlags = Qt::WindowFlags()) | |
| virtual | ~QGraphicsWidget() |
| QList<QAction *> | actions() const |
| void | addAction(QAction *action) |
| void | addActions(const QList<QAction *> &actions) |
| void | adjustSize() |
| bool | autoFillBackground() const |
| Qt::FocusPolicy | focusPolicy() const |
| QGraphicsWidget * | focusWidget() const |
| QFont | font() const |
| void | getWindowFrameMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const |
| int | grabShortcut(const QKeySequence &sequence, Qt::ShortcutContext context = Qt::WindowShortcut) |
| void | insertAction(QAction *before, QAction *action) |
| void | insertActions(QAction *before, const QList<QAction *> &actions) |
| bool | isActiveWindow() const |
| QGraphicsLayout * | layout() const |
| Qt::LayoutDirection | layoutDirection() const |
| virtual void | paintWindowFrame(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) |
| QPalette | palette() const |
| QRectF | rect() const |
| void | releaseShortcut(int id) |
| void | removeAction(QAction *action) |
| void | resize(const QSizeF &size) |
| void | resize(qreal w, qreal h) |
| void | setAttribute(Qt::WidgetAttribute attribute, bool on = true) |
| void | setAutoFillBackground(bool enabled) |
| void | setContentsMargins(QMarginsF margins) |
| void | setContentsMargins(qreal left, qreal top, qreal right, qreal bottom) |
| void | setFocusPolicy(Qt::FocusPolicy policy) |
| void | setFont(const QFont &font) |
| void | setGeometry(qreal x, qreal y, qreal w, qreal h) |
| void | setLayout(QGraphicsLayout *layout) |
| void | setLayoutDirection(Qt::LayoutDirection direction) |
| void | setPalette(const QPalette &palette) |
| void | setShortcutAutoRepeat(int id, bool enabled = true) |
| void | setShortcutEnabled(int id, bool enabled = true) |
| void | setStyle(QStyle *style) |
| void | setWindowFlags(Qt::WindowFlags wFlags) |
| void | setWindowFrameMargins(QMarginsF margins) |
| void | setWindowFrameMargins(qreal left, qreal top, qreal right, qreal bottom) |
| void | setWindowTitle(const QString &title) |
| QSizeF | size() const |
| QStyle * | style() const |
| bool | testAttribute(Qt::WidgetAttribute attribute) const |
| void | unsetLayoutDirection() |
| void | unsetWindowFrameMargins() |
| Qt::WindowFlags | windowFlags() const |
| QRectF | windowFrameGeometry() const |
| QRectF | windowFrameRect() const |
| QString | windowTitle() const |
| Qt::WindowType | windowType() const |
재구현된 공용 함수
| virtual QRectF | boundingRect() const override |
| virtual void | getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const override |
| virtual void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override |
| virtual void | setGeometry(const QRectF &rect) override |
| virtual QPainterPath | shape() const override |
| virtual int | type() const override |
공개 슬롯
| bool | close() |
신호
| void | geometryChanged() |
정적 공용 멤버
| void | setTabOrder(QGraphicsWidget *first, QGraphicsWidget *second) |
보호된 함수
| virtual void | changeEvent(QEvent *event) |
| virtual void | closeEvent(QCloseEvent *event) |
| virtual bool | focusNextPrevChild(bool next) |
| virtual void | grabKeyboardEvent(QEvent *event) |
| virtual void | grabMouseEvent(QEvent *event) |
| virtual void | hideEvent(QHideEvent *event) |
| virtual void | initStyleOption(QStyleOption *option) const |
| virtual void | moveEvent(QGraphicsSceneMoveEvent *event) |
| virtual void | polishEvent() |
| virtual void | resizeEvent(QGraphicsSceneResizeEvent *event) |
| virtual void | showEvent(QShowEvent *event) |
| virtual void | ungrabKeyboardEvent(QEvent *event) |
| virtual void | ungrabMouseEvent(QEvent *event) |
| virtual bool | windowFrameEvent(QEvent *event) |
| virtual Qt::WindowFrameSection | windowFrameSectionAt(const QPointF &pos) const |
재구현된 보호 함수
| virtual bool | event(QEvent *event) override |
| virtual void | focusInEvent(QFocusEvent *event) override |
| virtual void | focusOutEvent(QFocusEvent *event) override |
| virtual void | hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override |
| virtual void | hoverMoveEvent(QGraphicsSceneHoverEvent *event) override |
| virtual QVariant | itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override |
| virtual bool | sceneEvent(QEvent *event) override |
| virtual QSizeF | sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const override |
| virtual void | updateGeometry() override |
상세 설명
QGraphicsWidget은 QGraphicsItem 에 비해 추가 기능을 제공하는 확장된 기본 항목입니다. 여러 면에서 QWidget 와 유사합니다:
- palette, font 및 style()을 제공합니다.
- 정의된 geometry() 메서드를 가지고 있습니다.
- setLayout() 및 layout()을 통해 레이아웃을 지원합니다.
- grabShortcut() 및 insertAction()을 통해 단축키와 동작을 지원합니다.
QGraphicsItem 와 달리, QGraphicsWidget은 추상 클래스가 아니므로, 서브클래스를 생성하지 않고도 QGraphicsWidget의 인스턴스를 생성할 수 있습니다. 이 방식은 자식 위젯을 레이아웃으로 구성하는 역할만 수행하는 위젯에 유용합니다.
탭 포커스 및 활성화와 같은 고급 입력 포커스 처리나 레이아웃이 필요한 경우, QGraphicsWidget을 사용자 정의 아이템의 기본 아이템으로 사용할 수 있습니다.
QGraphicsWidget은 QWidget 과 유사하며 API도 비슷하기 때문에, QGraphicsItem 대신 QWidget 에서 QGraphicsWidget으로 위젯을 이식하는 것이 더 쉽습니다.
참고: QWidget 기반 위젯은 QGraphicsProxyWidget 를 사용하여 QGraphicsScene 에 직접 임베드할 수 있습니다.
QGraphicsWidget과 QWidget 의 눈에 띄는 차이점은 다음과 같습니다.
| QGraphicsWidget | QWidget |
|---|---|
| 좌표와 기하 구조는 qreal(플랫폼에 따라 double 또는 float)로 정의됩니다. | QWidget 정수 기하 구조를 사용합니다(QPoint, QRect). |
| 위젯은 기본적으로 이미 표시되어 있으므로, 위젯을 표시하기 위해 show()을 호출할 필요가 없습니다. | QWidget show()를 호출할 때까지는 기본적으로 숨겨져 있습니다. |
| 위젯 속성의 일부만 지원됩니다. | 모든 위젯 속성이 지원됩니다. |
| 최상위 항목의 스타일은 기본적으로 QGraphicsScene::style | 최상위 위젯의 스타일은 기본적으로 QApplication::style |
| Graphics View는 QWidget 과는 다른 사용자 정의 드래그 앤 드롭 프레임워크를 제공합니다. | 표준 드래그 앤 드롭 프레임워크. |
| 위젯 항목은 모달리티를 지원하지 않습니다. | 모달리티를 완벽하게 지원합니다. |
QGraphicsWidget은 아래 표에 표시된 대로 Qt 위젯 속성(Qt::WidgetAttribute)의 하위 집합을 지원합니다. 이 표에 나열되지 않은 속성은 지원되지 않거나 사용되지 않습니다.
| 위젯 속성 | 사용법 |
|---|---|
| Qt::WA_SetLayoutDirection | setLayoutDirection()로 설정하고, unsetLayoutDirection()로 해제합니다. 이 속성을 테스트하여 위젯에 layoutDirection 가 명시적으로 할당되었는지 확인할 수 있습니다. 속성이 설정되지 않은 경우, layoutDirection()가 상속됩니다. |
| Qt::WA_RightToLeft | setLayoutDirection()에 의해 토글됩니다. 부모/씬에서 상속됩니다. 설정된 경우, 위젯의 레이아웃은 수평으로 배열된 위젯을 오른쪽에서 왼쪽 순서로 정렬합니다. |
| Qt::WA_SetStyle | setStyle()을 통해 설정 및 해제됩니다. 이 속성이 설정된 경우, 위젯에 스타일이 명시적으로 할당된 것입니다. 설정되지 않은 경우, 위젯은 씬 또는 애플리케이션의 스타일을 사용합니다. |
| Qt::WA_Resized | setGeometry() 및 resize()에 의해 설정됩니다. |
| Qt::WA_SetPalette | setPalette()에 의해 설정됩니다. |
| Qt::WA_SetFont | setFont()에 의해 설정됩니다. |
| Qt::WA_WindowPropagation | 창 위젯으로의 전파를 활성화합니다. |
QGraphicsWidget은 QObject 와 QGraphicsItem 를 모두 상속받지만, 부모와 자식 항목 간의 관계를 관리할 때는 QObject 가 아닌 QGraphicsItem 에서 제공하는 함수를 사용해야 합니다. 이 함수들은 항목의 소유권뿐만 아니라 항목의 스택 순서도 제어합니다.
참고: QObject::parent()는 QGraphicsWidgets의 경우 항상 nullptr 를 반환해야 하지만, 이 정책은 엄격하게 정의되어 있지는 않습니다.
QGraphicsProxyWidget, QGraphicsItem, 위젯 및 레이아웃항목도 참조하십시오 .
속성 설명
autoFillBackground : bool
이 속성은 위젯의 배경이 자동으로 채워지는지 여부를 결정합니다.
이 속성이 활성화되면, Qt는 ` paint()` 메서드를 호출하기 전에 위젯의 배경을 채웁니다. 사용되는 색상은 위젯의 ` palette`에 정의된 ` QPalette::Window ` 색상 역할에 의해 결정됩니다.
또한, WA_OpaquePaintEvent 또는 WA_NoSystemBackground 속성이 설정되어 있지 않은 한, 창은 항상 QPalette::Window 로 채워집니다.
기본적으로 이 속성의 값은 false 입니다.
액세스 함수:
| bool | autoFillBackground() const |
| void | setAutoFillBackground(bool enabled) |
Qt::WA_OpaquePaintEvent 및 Qt::WA_NoSystemBackground도 참조하십시오 .
focusPolicy : Qt::FocusPolicy
이 속성은 위젯이 키보드 포커스를 받는 방식을 지정합니다.
포커스 정책은 위젯이 탭 키를 통해 키보드 포커스를 받는 경우 Qt::TabFocus, 클릭을 통해 포커스를 받는 경우 Qt::ClickFocus, 두 가지 방법 모두를 통해 포커스를 받는 경우 Qt::StrongFocus, 포커스를 전혀 받지 않는 경우 Qt::NoFocus (기본값)입니다.
위젯이 키보드 이벤트를 처리하는 경우 키보드 포커스를 활성화해야 합니다. 이는 일반적으로 위젯의 생성자에서 수행됩니다. 예를 들어, QLineEdit 생성자는 setFocusPolicy(Qt::StrongFocus)를 호출합니다.
포커스 정책을 활성화하는 경우(즉, ` Qt::NoFocus`가 아닌 경우), ` QGraphicsWidget `는 자동으로 `ItemIsFocusable` 플래그를 활성화합니다. 위젯에 ` Qt::NoFocus `를 설정하면 `ItemIsFocusable` 플래그가 지워집니다. 위젯이 현재 키보드 포커스를 가지고 있는 경우, 위젯은 자동으로 포커스를 잃게 됩니다.
액세스 함수:
| Qt::FocusPolicy | focusPolicy() const |
| void | setFocusPolicy(Qt::FocusPolicy policy) |
focusInEvent(), focusOutEvent(), keyPressEvent(), keyReleaseEvent(), enabled도 참조하십시오 .
font : QFont
이 속성은 위젯의 글꼴을 지정합니다
이 속성은 위젯의 글꼴을 제공합니다.
QFont 이 속성은 명시적으로 정의된 글꼴 속성과 위젯의 부모로부터 암시적으로 상속받은 속성으로 구성됩니다. 따라서 font()는 setFont()로 설정된 글꼴과 다른 글꼴을 반환할 수 있습니다. 이 방식을 통해 글꼴의 상속된 항목에 영향을 주지 않고 글꼴 내의 개별 항목을 정의할 수 있습니다.
위젯의 글꼴이 변경되면, 해당 위젯은 부모 위젯을 기준으로 항목을 해결합니다. 위젯에 부모 위젯이 없는 경우, 씬을 기준으로 항목을 해결합니다. 그런 다음 위젯은 자체적으로 ` FontChange ` 이벤트를 발생시키고 모든 하위 요소에 알림을 보내, 하위 요소들도 각자의 글꼴을 해결할 수 있도록 합니다.
기본적으로 이 속성에는 애플리케이션의 기본 글꼴이 포함됩니다.
액세스 함수:
| QFont | font() const |
| void | setFont(const QFont &font) |
QApplication::font(), QGraphicsScene::font 및 QFont::resolve()도 참조하십시오 .
geometry : QRectF
이 속성은 위젯의 기하학적 정보를 저장합니다.
항목의 기하학적 속성을 ` rect`로 설정합니다. 이 함수를 호출하면 항목의 위치와 크기가 변경됩니다. 항목은 먼저 이동된 후 크기가 조정됩니다.
이 함수를 호출하면 위젯이 이동 이벤트와 크기 조정 이벤트를 수신하게 되는 것이 부수적인 효과입니다. 또한, 위젯에 레이아웃이 할당되어 있는 경우 해당 레이아웃이 활성화됩니다.
액세스 함수:
| virtual void | setGeometry(const QRectF &rect) override |
| void | setGeometry(qreal x, qreal y, qreal w, qreal h) |
노티파이어 시그널:
| void | geometryChanged() |
geometry() 및 resize()도 참조하십시오 .
layout : QGraphicsLayout*
이 속성은 위젯의 레이아웃을 저장합니다.
새로운 레이아웃이 할당되기 전에 기존 레이아웃 관리자는 모두 삭제됩니다. layout 가 nullptr 인 경우, 위젯은 레이아웃이 없는 상태로 남게 됩니다. 기존 하위 위젯의 기하학적 속성은 영향을 받지 않습니다.
QGraphicsWidget layout 의 소유권을 인수합니다.
현재 layout 또는 그 모든 하위 레이아웃에 의해 관리되고 있는 모든 위젯은 자동으로 이 항목으로 부모가 재지정됩니다. 그런 다음 레이아웃이 무효화되고, 자식 위젯의 기하학적 속성은 이 항목의 geometry() 및 contentsMargins()에 따라 조정됩니다. layout 에 의해 명시적으로 관리되지 않는 자식 위젯은 레이아웃이 이 위젯에 할당된 후에도 영향을 받지 않습니다.
현재 이 위젯을 관리하는 레이아웃이 없는 경우, layout()은 ` nullptr`를 반환합니다.
액세스 함수:
layoutDirection : Qt::LayoutDirection
이 속성은 이 위젯의 레이아웃 방향을 지정합니다.
이 속성은 이 위젯과 그 모든 하위 위젯의 ` Qt::WA_RightToLeft ` 속성을 수정합니다. 또한 이 위젯의 ` Qt::WA_SetLayoutDirection ` 속성도 설정합니다.
위젯의 레이아웃 방향은 레이아웃 관리자가 이 위젯의 하위 위젯을 수평으로 배열하는 순서를 결정합니다. 기본값은 애플리케이션의 언어 및 지역 설정에 따라 다르며, 일반적으로 단어가 읽히고 쓰이는 방향과 동일합니다. Qt::LeftToRight 의 경우, 레이아웃은 이 위젯의 왼쪽에서 오른쪽으로 순서대로 하위 위젯을 배치하기 시작합니다. Qt::RightToLeft 는 그 반대입니다. 즉, 레이아웃은 오른쪽 가장자리에서 시작하여 왼쪽으로 이동하는 순서로 위젯을 배치합니다.
자식 위젯은 부모로부터 레이아웃 방향을 상속받습니다. 최상위 위젯 항목은 QGraphicsScene::layoutDirection에서 레이아웃 방향을 상속받습니다. setLayoutDirection()을 호출하여 위젯의 레이아웃 방향을 변경하면, 해당 위젯은 스스로 LayoutDirectionChange 이벤트를 전송한 다음, 새로운 레이아웃 방향을 모든 자식 위젯에 전파합니다.
액세스 함수:
| Qt::LayoutDirection | layoutDirection() const |
| void | setLayoutDirection(Qt::LayoutDirection direction) |
| void | unsetLayoutDirection() |
QWidget::layoutDirection 및 QApplication::layoutDirection도 참조하십시오 .
maximumSize : QSizeF
이 속성은 위젯의 최대 크기를 지정합니다.
setMaximumSize(), maximumSize(), minimumSize 및 preferredSize도 참조하십시오 .
minimumSize : QSizeF
이 속성은 위젯의 최소 크기를 지정합니다.
setMinimumSize(), minimumSize(), preferredSize 및 maximumSize도 참조하십시오 .
palette : QPalette
이 속성은 위젯의 팔레트를 포함합니다.
이 속성은 위젯의 팔레트를 제공합니다. 팔레트는 색상 그룹(예: QPalette::Button) 및 상태(예: QPalette::Inactive)에 대한 색상과 브러시를 제공하며, 위젯과 그 자식 요소의 전반적인 외관을 대략적으로 정의합니다.
QPalette 팔레트는 명시적으로 정의된 색상 그룹과 위젯의 부모로부터 암시적으로 상속받은 그룹으로 구성됩니다. 이 때문에 palette()는 setPalette()를 통해 설정된 팔레트와는 다른 팔레트를 반환할 수 있습니다. 이러한 방식을 통해 팔레트의 상속된 항목에 영향을 주지 않고 팔레트 내의 개별 항목을 정의할 수 있습니다.
위젯의 팔레트가 변경되면, 해당 위젯은 부모 위젯을 기준으로 항목을 확인하며, 부모 위젯이 없는 경우에는 씬을 기준으로 확인합니다. 그런 다음 위젯은 자체적으로 ` PaletteChange ` 이벤트를 발생시키고, 모든 자손 위젯에 알림을 보내 해당 위젯들도 팔레트를 확인하도록 합니다.
기본적으로 이 속성에는 애플리케이션의 기본 팔레트가 포함됩니다.
액세스 함수:
| QPalette | palette() const |
| void | setPalette(const QPalette &palette) |
QGuiApplication::palette(), QGraphicsScene::palette 및 QPalette::resolve()도 참조하십시오 .
preferredSize : QSizeF
이 속성은 위젯의 기본 크기를 저장합니다.
setPreferredSize(), preferredSize(), minimumSize 및 maximumSize도 참조하십시오 .
size : QSizeF
이 속성은 위젯의 크기를 저장합니다.
size resize()를 호출하면 위젯의 크기가 minimumSize 와 () 및 maximumSize()로 정의된 영역 내에서 조정됩니다. 이 속성은 위젯의 너비와 높이(예: 오른쪽 및 하단 가장자리)에만 영향을 미치며, 위젯의 위치와 왼쪽 상단 모서리는 영향을 받지 않습니다.
위젯의 크기를 조정하면 위젯은 이전 크기와 새로운 크기가 포함된 GraphicsSceneResize 이벤트를 즉시 수신하게 됩니다. 이 이벤트가 도착할 때 위젯에 레이아웃이 할당되어 있다면, 해당 레이아웃이 활성화되어 모든 자식 위젯의 기하학적 속성을 자동으로 업데이트합니다.
이 속성은 부모 위젯의 레이아웃에는 영향을 미치지 않습니다. 위젯 자체가 부모 레이아웃에 의해 관리되는 경우(예: 레이아웃이 할당된 부모 위젯이 있는 경우), 해당 레이아웃은 활성화되지 않습니다.
기본적으로 이 속성은 너비와 높이가 0인 크기를 포함합니다.
액세스 함수:
| QSizeF | size() const |
| void | resize(const QSizeF &size) |
| void | resize(qreal w, qreal h) |
알림 신호:
| void | geometryChanged() |
setGeometry(), QGraphicsSceneResizeEvent 및 QGraphicsLayout도 참조하십시오 .
sizePolicy : QSizePolicy
이 속성은 위젯의 크기 정책을 지정합니다.
sizePolicy(), setSizePolicy(), QWidget::sizePolicy()도 참조하십시오 .
windowFlags : Qt::WindowFlags
이 속성은 위젯의 창 플래그를 포함합니다.
창 플래그는 창 유형(예: Qt::Dialog)과 창의 동작에 대한 힌트를 제공하는 여러 플래그의 조합입니다. 이 동작은 플랫폼에 따라 다릅니다.
기본적으로 이 속성에는 창 플래그가 포함되어 있지 않습니다.
창은 패널입니다. ` Qt::Window ` 플래그를 설정하면 `ItemIsPanel` 플래그가 자동으로 설정됩니다. ` Qt::Window ` 플래그를 해제하면 `ItemIsPanel` 플래그도 해제됩니다. `ItemIsPanel` 플래그는 ` Qt::Window`과 별개로 설정할 수 있다는 점에 유의하십시오.
액세스 함수:
| Qt::WindowFlags | windowFlags() const |
| void | setWindowFlags(Qt::WindowFlags wFlags) |
isWindow() 및 isPanel()도 참조하십시오 .
windowTitle : QString
이 속성은 창의 제목(캡션)을 저장합니다.
이 속성은 창에만 사용됩니다.
기본적으로 제목이 설정되지 않은 경우, 이 속성은 빈 문자열을 포함합니다.
액세스 함수:
| QString | windowTitle() const |
| void | setWindowTitle(const QString &title) |
멤버 함수 설명서
QGraphicsWidget::QGraphicsWidget(QGraphicsItem *parent = nullptr, Qt::WindowFlags wFlags = Qt::WindowFlags())
QGraphicsWidget 인스턴스를 생성합니다. 선택적 매개변수인 ` parent `는 ` QGraphicsItem`의 생성자에 전달됩니다. 선택적 매개변수인 ` wFlags `는 위젯의 창 플래그(예: 위젯을 창, 도구, 팝업 등으로 설정할지 여부)를 지정합니다.
[virtual noexcept] QGraphicsWidget::~QGraphicsWidget()
QGraphicsWidget 인스턴스를 삭제합니다.
QList<QAction *> QGraphicsWidget::actions() const
이 위젯의 액션 목록(비어 있을 수도 있음)을 반환합니다.
insertAction(), removeAction(), QWidget::actions(), QAction::associatedWidgets() 및 QAction::associatedGraphicsWidgets()도 참조하십시오 .
void QGraphicsWidget::addAction(QAction *action)
이 위젯의 액션 목록에 ‘ action ’ 액션을 추가합니다.
모든 QGraphicsWidget은 QAction목록을 가지고 있지만, 이를 그래픽적으로 표현하는 방식은 매우 다양합니다. QAction 목록( actions()이 반환하는 값)의 기본 용도는 컨텍스트 QMenu 를 생성하는 것입니다.
QGraphicsWidget 에는 각 액션이 하나씩만 포함되어야 하며, 이미 존재하는 액션을 추가하더라도 위젯에 동일한 액션이 두 번 포함되지는 않습니다.
removeAction(), insertAction(), actions(), QWidget::addAction()도 참조하십시오 .
void QGraphicsWidget::addActions(const QList<QAction *> &actions)
actions 액션을 이 위젯의 액션 목록에 추가합니다.
removeAction(), QMenu, addAction() 및 QWidget::addActions()도 참조하십시오 .
void QGraphicsWidget::adjustSize()
위젯의 크기를 실제 선호 크기 힌트에 맞게 조정합니다.
이 함수는 항목이 처음 표시될 때 암시적으로 호출됩니다.
effectiveSizeHint() 및 Qt::MinimumSize도 참조하십시오 .
[override virtual] QRectF QGraphicsWidget::boundingRect() const
QGraphicsItem::boundingRect() const를 재구현합니다.
[virtual protected] void QGraphicsWidget::changeEvent(QEvent *event)
이 이벤트 핸들러는 상태 변경을 처리하도록 재구현할 수 있습니다.
이 이벤트에서 변경되는 상태는 event 를 통해 가져올 수 있습니다.
변경 이벤트에는 QEvent::ActivationChange, QEvent::EnabledChange, QEvent::FontChange, QEvent::StyleChange, QEvent::PaletteChange, QEvent::ParentChange, QEvent::LayoutDirectionChange 및 QEvent::ContentsRectChange 가 포함됩니다.
[slot] bool QGraphicsWidget::close()
위젯을 닫으려면 이 함수를 호출하십시오.
위젯이 닫힌 경우 ` true `을 반환하고, 그렇지 않은 경우 ` false`을 반환합니다. 이 슬롯은 먼저 위젯에 ` QCloseEvent `을 전송하며, 위젯은 이 이벤트를 수락할 수도 있고 수락하지 않을 수도 있습니다. 이벤트가 무시된 경우 아무런 동작도 발생하지 않습니다. 이벤트가 수락된 경우, 위젯에 ` hide()`을 호출합니다.
위젯에 Qt::WA_DeleteOnClose 속성이 설정되어 있으면 위젯이 삭제됩니다.
[virtual protected] void QGraphicsWidget::closeEvent(QCloseEvent *event)
event 에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 위젯 닫기 이벤트를 수신할 수 있습니다. 기본 구현은 해당 이벤트를 수락합니다.
close() 및 QCloseEvent도 참조하십시오 .
[override virtual protected] bool QGraphicsWidget::event(QEvent *event)
QGraphicsObject::event(QEvent *ev)를 재구현합니다.
event 를 처리합니다. ` QGraphicsWidget `는 다음 이벤트를 처리합니다:
| 이벤트 | 사용법 |
|---|---|
| 폴란드어 | 위젯이 표시된 후 일정 시간이 지난 시점에 위젯으로 전달됩니다. |
| GraphicsSceneMove | 위젯의 로컬 위치가 변경된 후 위젯에 전달됩니다. |
| GraphicsSceneResize | 위젯의 크기가 변경된 후 위젯에 전달됩니다. |
| Show | 위젯이 표시되기 전에 위젯에 전달됩니다. |
| Hide | 위젯이 숨겨진 후에 위젯에 전달됩니다. |
| 팔레트 변경 | 위젯의 팔레트가 변경된 후에 위젯에 전달됩니다. |
| FontChange | 위젯의 글꼴이 변경된 후 위젯에 전달됩니다. |
| EnabledChange | 위젯의 활성화 상태가 변경된 후 위젯에 전달됩니다. |
| StyleChange | 위젯의 스타일이 변경된 후 위젯에 전달됩니다. |
| LayoutDirectionChange | 위젯의 레이아웃 방향이 변경된 후 위젯에 전달됩니다. |
| ContentsRectChange | 위젯의 콘텐츠 여백/콘텐츠 사각형이 변경된 후 위젯에 전달됩니다. |
[override virtual protected] void QGraphicsWidget::focusInEvent(QFocusEvent *event)
QGraphicsItem::focusInEvent(QFocusEvent *event)를 재구현합니다.
[virtual protected] bool QGraphicsWidget::focusNextPrevChild(bool next)
Tab 및 Shift+Tab에 적합하도록 키보드 포커스를 전달할 새로운 위젯을 찾으며, 새로운 위젯을 찾을 수 있으면 ` true `를 반환하고, 그렇지 않으면 ` false `를 반환합니다. ` next `가 참이면 이 함수는 앞으로 검색하고, ` next `가 거짓이면 뒤로 검색합니다.
때로는 위젯과 그 하위 위젯에 대한 특수한 포커스 처리를 제공하기 위해 이 함수를 재구현하고 싶을 수 있습니다. 예를 들어, 웹 브라우저는 현재 활성화된 링크를 앞뒤로 이동하도록 이 함수를 재구현하고, 페이지의 마지막 또는 첫 번째 링크에 도달했을 때만 기본 구현을 호출할 수 있습니다.
자식 위젯은 부모 위젯에 대해 focusNextPrevChild()를 호출하지만, 포커스를 어디로 이동시킬지는 자식 위젯을 포함하는 창만이 결정합니다. 객체에 대해 이 함수를 재구현하면 모든 자식 위젯의 포커스 이동 경로를 제어할 수 있습니다.
focusPolicy()도 참조하십시오 .
[override virtual protected] void QGraphicsWidget::focusOutEvent(QFocusEvent *event)
QGraphicsItem::focusOutEvent(QFocusEvent *event)를 재구현합니다.
QGraphicsWidget *QGraphicsWidget::focusWidget() const
이 위젯이나 이 위젯의 자식 또는 하위 위젯 중 현재 입력 포커스를 가지고 있는 것이 있다면, 이 함수는 해당 위젯에 대한 포인터를 반환합니다. 입력 포커스를 가진 하위 위젯이 없는 경우, ` nullptr `가 반환됩니다.
QGraphicsItem::focusItem() 및 QWidget::focusWidget()도 참조하십시오 .
[signal] void QGraphicsWidget::geometryChanged()
setGeometry()에서 지오메트리가 변경될 때마다 이 신호가 발생합니다.
[override virtual] void QGraphicsWidget::getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const
QGraphicsLayoutItem::getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const를 재구현합니다.
위젯의 내용 여백을 가져옵니다. 여백은 left, top, right 및 bottom 에 qreal 포인터로 저장됩니다. nullptr 를 전달하면 각 인수를 생략할 수 있습니다.
setContentsMargins()도 참조하십시오 .
void QGraphicsWidget::getWindowFrameMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const
위젯의 창 테두리 여백을 가져옵니다. 여백 값은 left, top, right 및 bottom 에 qreal 형 포인터로 저장됩니다. nullptr 를 전달하면 각 인수를 생략할 수 있습니다.
setWindowFrameMargins() 및 windowFrameRect()도 참조하십시오 .
[virtual protected] void QGraphicsWidget::grabKeyboardEvent(QEvent *event)
event 에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 QEvent::GrabKeyboard 이벤트에 대한 알림을 수신할 수 있습니다.
grabKeyboard() 및 grabMouse()도 참조하십시오 .
[virtual protected] void QGraphicsWidget::grabMouseEvent(QEvent *event)
event 에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 QEvent::GrabMouse 이벤트에 대한 알림을 수신할 수 있습니다.
grabMouse() 및 grabKeyboard()도 참조하십시오 .
int QGraphicsWidget::grabShortcut(const QKeySequence &sequence, Qt::ShortcutContext context = Qt::WindowShortcut)
지정된 키 sequence 가 지정된 영역 context 에서 입력되는지 감시하는 단축키를 Qt의 단축키 시스템에 추가합니다. context 가 Qt::ApplicationShortcut 인 경우, 이 단축키는 애플리케이션 전체에 적용됩니다. 그렇지 않은 경우, 이 위젯 Qt::WidgetShortcut 에만 국한되거나 창 자체 Qt::WindowShortcut 에만 국한됩니다. 창에 속하지 않는 위젯(즉, 최상위 위젯과 그 자식 위젯)의 경우 Qt::WindowShortcut, 단축키는 씬에 적용됩니다.
동일한 키 sequence 가 여러 위젯에 의해 잡혀 있는 경우, 해당 키 sequence 가 발생하면 QEvent::Shortcut 이벤트가 적용되는 모든 위젯으로 비결정적인 순서대로 전송되지만, ``ambiguous'' 플래그는 true로 설정됩니다.
경고: 일반적으로 이 함수를 사용할필요는 없습니다 . 대신 필요한 단축키 시퀀스로 ` QAction`를 생성하거나(동등한 메뉴 옵션 및 툴바 버튼도 원하는 경우), 키 시퀀스만 필요한 경우에는 ` QShortcut`를 생성하십시오. QAction 와 QShortcut 는 모든 이벤트 필터링을 자동으로 처리해 주며, 사용자가 키 시퀀스를 실행할 때 트리거되는 신호를 제공하므로, 이 저수준 함수보다 사용하기가 훨씬 쉽습니다.
releaseShortcut(), setShortcutEnabled() 및 QWidget::grabShortcut()도 참조하십시오 .
[virtual protected] void QGraphicsWidget::hideEvent(QHideEvent *event)
Hide 이벤트에 대한 이 이벤트 핸들러는 위젯이 숨겨진 후, 예를 들어 위젯이 이전에 표시되어 있던 상태에서 해당 위젯이나 그 상위 요소 중 하나에 대해 setVisible(false)가 호출된 후에 전달됩니다.
이 이벤트 핸들러를 재구현하여 위젯이 숨겨지는 시점을 감지할 수 있습니다. event 에서 QEvent::accept() 또는 QEvent::ignore()를 호출해도 아무런 효과가 없습니다.
showEvent(), QWidget::hideEvent() 및 ItemVisibleChange도 참조하십시오 .
[override virtual protected] void QGraphicsWidget::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
QGraphicsItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)를 재구현합니다.
[override virtual protected] void QGraphicsWidget::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
QGraphicsItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event)를 재구현합니다.
[virtual protected] void QGraphicsWidget::initStyleOption(QStyleOption *option) const
이 위젯의 현재 상태를 기반으로 스타일 옵션 객체를 채우고, 그 결과를 ` option`에 저장합니다. 기본 구현에서는 ` option `에 다음 속성들을 채웁니다.
| 스타일 옵션 속성 | 값 |
|---|---|
| state 및 QStyle::State_Enabled | QGraphicsItem::isEnabled()에 해당합니다. |
| state & QStyle::State_HasFocus | QGraphicsItem::hasFocus()에 해당합니다. |
| 상태 및 QStyle::State_MouseOver | QGraphicsItem::isUnderMouse()에 해당합니다. |
| direction | QGraphicsWidget::layoutDirection()에 해당합니다. |
| rect | QGraphicsWidget::rect()의 toRect()와 일치합니다. |
| palette | QGraphicsWidget::palette()에 해당합니다. |
| fontMetrics | QFontMetrics 의 (QGraphicsWidget::font())에 해당합니다. |
QGraphicsWidget 의 서브클래스는 기본 구현을 호출한 다음, qstyleoption_cast<>()를 사용하여 option 의 유형을 테스트하거나, 위젯별 옵션을 저장하기 전에 QStyleOption::Type 를 테스트해야 합니다.
예를 들어:
void MyGroupBoxWidget::initStyleOption(QStyleOption *option) const
{
QGraphicsWidget::initStyleOption(option);
if (QStyleOptionGroupBox *box = qstyleoption_cast<QStyleOptionGroupBox *>(option)) {
// Add group box specific state.
box->text = tr("My Group Box");
//...
}
}QStyleOption::initFrom()도 참조하십시오 .
void QGraphicsWidget::insertAction(QAction *before, QAction *action)
이 위젯의 액션 목록에 ‘ action ’ 액션을 ‘ before ’ 액션 바로 앞에 삽입합니다. ‘ before ’이 ‘ nullptr ’인 경우, 또는 ‘ before ’가 이 위젯에 대해 유효한 액션이 아닌 경우, 해당 액션을 목록 끝에 추가합니다.
QGraphicsWidget 에는 각 액션이 하나씩만 포함되어야 합니다.
removeAction(), addAction(), QMenu, actions(), QWidget::insertActions()도 참조하십시오 .
void QGraphicsWidget::insertActions(QAction *before, const QList<QAction *> &actions)
이 위젯의 동작 목록에 ‘ actions ’ 동작을 ‘ before ’ 동작 앞에 삽입합니다. ‘ before ’이 ‘ nullptr ’인 경우, 또는 ‘ before ’이 이 위젯에 대해 유효한 동작이 아닌 경우, 해당 동작을 목록 끝에 추가합니다.
QGraphicsWidget 에는 각 액션이 최대 하나씩만 포함될 수 있습니다.
removeAction(), QMenu, insertAction(), QWidget::insertActions()도 참조하십시오 .
bool QGraphicsWidget::isActiveWindow() const
이 위젯의 창이 활성 창에 있거나, 위젯에 창이 없지만 활성 씬(즉, 현재 포커스가 있는 씬)에 있는 경우 ` true `를 반환합니다.
활성 창이란 현재 입력 포커스를 가지고 있는 자식 위젯을 포함하고 있거나, 그 자체로 입력 포커스를 가지고 있는 창을 말합니다.
QGraphicsScene::activeWindow(), QGraphicsScene::setActiveWindow(), isActive()도 참조하십시오 .
[override virtual protected] QVariant QGraphicsWidget::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
QGraphicsItem::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)를 재구현합니다.
QGraphicsWidget 이 함수의 기본 구현을 사용하여 항목의 상태 변경과 관련된 이벤트를 포착하고 전달합니다. 이 때문에 하위 클래스에서는 반드시 기본 구현을 호출해야 합니다.
change 는 변경 유형을 지정하며, value 는 새로운 값입니다.
예를 들어, QGraphicsWidget 는 ItemVisibleChange를 사용하여 Show 및 Hide 이벤트를 전달하고, ItemPositionHasChanged를 사용하여 Move 이벤트를 전달하며, ItemParentChange를 사용하여 ParentChange 이벤트를 전달하고 포커스 체인을 관리합니다.
QGraphicsWidget 위치 변경 사항을 추적하기 위해 기본적으로 ItemSendsGeometryChanges 플래그를 활성화합니다.
QGraphicsItem::itemChange()도 참조하십시오 .
QGraphicsLayout *QGraphicsWidget::layout() const
이 위젯의 레이아웃을 반환하거나, 현재 이 위젯을 관리하는 레이아웃이 없는 경우 ` nullptr `를 반환합니다.
참고: layout 속성에 대한게터 함수입니다.
참조 : `setLayout()`도 참조하십시오 .
[virtual protected] void QGraphicsWidget::moveEvent(QGraphicsSceneMoveEvent *event)
GraphicsSceneMove 이벤트에 대한 이 이벤트 핸들러는 위젯이 이동한 후(예: 로컬 위치가 변경된 후) 전달됩니다.
이 이벤트는 항목이 로컬로 이동한 경우에만 전달됩니다. ` setTransform()`를 호출하거나 항목의 상위 요소 중 하나를 이동하는 것은 항목의 로컬 위치에 영향을 미치지 않습니다.
위젯이 이동한 시점을 감지하려면 이 이벤트 핸들러를 재구현할 수 있습니다. event 에서 QEvent::accept() 또는 QEvent::ignore()를 호출해도 아무런 효과가 없습니다.
ItemPositionChange 및 ItemPositionHasChanged도 참조하십시오 .
[override virtual] void QGraphicsWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)를 재구현합니다.
[virtual] void QGraphicsWidget::paintWindowFrame(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
이 가상 함수는 ` QGraphicsScene `에 의해 호출되어, ` painter`, ` option` 및 ` widget`을 사용하여 로컬 좌표계에서 창의 테두리를 그립니다. 기본 구현은 현재 스타일을 사용하여 테두리와 제목 표시줄을 렌더링합니다.
QGraphicsWidget 의 서브클래스에서 이 함수를 재구현하여 위젯의 창 테두리를 사용자 정의 방식으로 렌더링할 수 있습니다.
QGraphicsItem::paint()도 참조하십시오 .
[virtual protected] void QGraphicsWidget::polishEvent()
이 이벤트는 아이템이 생성된 후, 하지만 장면을 통해 표시되거나 다른 방식으로 접근되기 전의 어느 시점에 장면에 의해 아이템에 전달됩니다. 이 이벤트 핸들러를 사용하면 아이템이 완전히 생성되어야 하는 위젯의 마지막 순간 초기화 작업을 수행할 수 있습니다.
기본 구현은 아무 작업도 수행하지 않습니다.
QRectF QGraphicsWidget::rect() const
항목의 로컬 직사각형을 ` QRectF` 형식으로 반환합니다. 이 함수는 ` QRectF` (`QPointF()`), ` size()`와 동일합니다.
setGeometry() 및 resize()도 참조하십시오 .
void QGraphicsWidget::releaseShortcut(int id)
지정된 키 조합( id )을 가진 단축키를 Qt의 단축키 시스템에서 제거합니다. 이 위젯은 더 이상 해당 단축키의 키 조합에 대한 키 입력 이벤트( QEvent::Shortcut )를 수신하지 않게 됩니다(동일한 키 조합을 가진 다른 단축키가 있는 경우는 제외).
경고: Qt의 단축키 시스템은 상위 위젯이 소멸될 때 단축키를 자동으로 제거하므로, 일반적으로 이 함수를 사용할필요가 없습니다 . 이 저수준 함수보다 사용이 간편한 ` QAction ` 또는 ` QShortcut `를 사용하여 단축키를 처리하는 것이 가장 좋습니다. 또한 이 작업은 많은 자원을 소모한다는 점에 유의하십시오.
grabShortcut(), setShortcutEnabled(), QWidget::releaseShortcut()도 참조하십시오 .
void QGraphicsWidget::removeAction(QAction *action)
이 위젯의 작업 목록에서 “ action ” 작업을 제거합니다.
insertAction(), actions(), QWidget::removeAction()도 참조하십시오 .
void QGraphicsWidget::resize(qreal w, qreal h)
지정된 width (w) 및 height (h)을 사용하여 resize 객체를 생성합니다. 이 편의 함수는 resize(QSizeF(w, h))를 호출하는 것과 동일합니다.
참고: size 속성에 대한세터 함수입니다.
이 함수는 오버로드된 함수입니다.
setGeometry() 및 setTransform()도 참조하십시오 .
[virtual protected] void QGraphicsWidget::resizeEvent(QGraphicsSceneResizeEvent *event)
GraphicsSceneResize 이벤트에 대한 이 이벤트 핸들러는 위젯의 크기가 조정된 후(즉, 위젯의 로컬 크기가 변경된 후) 호출됩니다. ` event `에는 이전 크기와 새로운 크기가 모두 포함됩니다.
이 이벤트는 위젯의 로컬 크기가 변경되었을 때만 전달됩니다. 위젯이나 그 상위 요소, 또는 뷰에서 ` setTransform()`를 호출하더라도 위젯의 로컬 크기에 영향을 미치지 않습니다.
위젯의 크기가 조정되었을 때 이를 감지하기 위해 이 이벤트 핸들러를 재구현할 수 있습니다. event 에서 QEvent::accept() 또는 QEvent::ignore()를 호출해도 아무런 효과가 없습니다.
geometry() 및 setGeometry()도 참조하십시오 .
[override virtual protected] bool QGraphicsWidget::sceneEvent(QEvent *event)
QGraphicsItem::sceneEvent(QEvent *event)를 재구현합니다.
QGraphicsWidget의 sceneEvent() 구현은 단순히 event 를 QGraphicsWidget::event()로 전달합니다. event() 또는 편의 함수 중 하나에서 위젯에 대한 모든 이벤트를 처리할 수 있으며, QGraphicsWidget 의 하위 클래스에서 이 함수를 재구현할 필요는 없습니다.
event 가 인식되고 처리된 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
QGraphicsItem::sceneEvent()도 참조하십시오 .
void QGraphicsWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)
on 가 true인 경우, 이 함수는 attribute 를 활성화하며, 그렇지 않은 경우 attribute 는 비활성화됩니다.
지원되는 속성의 전체 목록과 각 속성의 용도에 대해서는 QGraphicsWidget 클래스 문서를 참조하십시오.
testAttribute() 및 QWidget::setAttribute()도 참조하십시오 .
void QGraphicsWidget::setContentsMargins(QMarginsF margins)
위젯의 콘텐츠 여백을 ` margins`로 설정합니다.
콘텐츠 여백은 할당된 레이아웃이 하위 위젯과 레이아웃의 위치를 정의하는 데 사용됩니다. 여백은 하위 위젯을 자체 기하 구조의 특정 영역으로만 제한하는 위젯에 특히 유용합니다. 예를 들어, 레이아웃이 적용된 그룹 박스는 하위 위젯을 프레임 내부에 배치하되 제목 바로 아래에 배치합니다.
위젯의 내용 여백을 변경하면 항상 ` update()`가 호출되며, 할당된 레이아웃은 자동으로 활성화됩니다. 그러면 위젯은 ` ContentsRectChange ` 이벤트를 수신합니다.
getContentsMargins() 및 setGeometry()도 참조하십시오 .
void QGraphicsWidget::setContentsMargins(qreal left, qreal top, qreal right, qreal bottom)
위젯의 내용 여백을 left, top, right 및 bottom 로 설정합니다.
이 함수는 오버로드된 함수입니다.
void QGraphicsWidget::setGeometry(qreal x, qreal y, qreal w, qreal h)
이 편의 함수는 setGeometry(QRectF( x, y, w, h))를 호출하는 것과 동일합니다.
참고: geometry 속성에 대한세터 함수입니다.
geometry() 및 resize()도 참조하십시오 .
void QGraphicsWidget::setLayout(QGraphicsLayout *layout)
이 위젯의 레이아웃을 ` layout`로 설정합니다. 새 레이아웃이 할당되기 전에 기존 레이아웃 관리자는 모두 삭제됩니다. ` layout `가 ` nullptr`인 경우, 위젯은 레이아웃이 없는 상태로 남게 됩니다. 기존 하위 위젯의 기하학적 속성은 영향을 받지 않습니다.
현재 layout 또는 그 모든 하위 레이아웃에 의해 관리되고 있는 모든 위젯은 자동으로 이 항목으로 부모가 변경됩니다. 그런 다음 레이아웃이 무효화되고, 자식 위젯의 지오메트리는 이 항목의 geometry() 및 contentsMargins()에 따라 조정됩니다. layout 에 의해 명시적으로 관리되지 않는 자식 위젯은 이 위젯에 레이아웃이 할당된 후에도 영향을 받지 않습니다.
QGraphicsWidget layout 의 소유권을 인수합니다.
참고: layout 속성에 대한세터 함수입니다.
layout(), QGraphicsLinearLayout::addItem(), QGraphicsLayout::invalidate()도 참조하십시오 .
void QGraphicsWidget::setShortcutAutoRepeat(int id, bool enabled = true)
enabled 가 true인 경우, 지정된 id 를 사용하는 단축키의 자동 반복이 활성화되며, 그렇지 않은 경우 비활성화됩니다.
grabShortcut(), releaseShortcut(), QWidget::setShortcutAutoRepeat()도 참조하십시오 .
void QGraphicsWidget::setShortcutEnabled(int id, bool enabled = true)
enabled 가 true인 경우, 지정된 id 를 가진 단축키가 활성화되며, 그렇지 않은 경우 단축키는 비활성화됩니다.
경고: Qt의 단축키 시스템은 위젯이 숨겨지거나 표시되고, 포커스를 얻거나 잃을 때 단축키를 자동으로 활성화/비활성화하므로, 일반적으로 이 함수를 사용할필요가 없습니다 . 이 저수준 함수보다 사용하기 쉬운 QAction 또는 QShortcut 을 사용하여 단축키를 처리하는 것이 가장 좋습니다.
grabShortcut(), releaseShortcut(), QWidget::setShortcutEnabled()도 참조하십시오 .
void QGraphicsWidget::setStyle(QStyle *style)
위젯의 스타일을 style 로 설정합니다. QGraphicsWidget 는 style 의 소유권을 가져가지 않습니다.
스타일이 지정되지 않았거나 style 가 nullptr 인 경우, 위젯은 QGraphicsScene::style()을 사용합니다(이 값이 설정된 경우). 그렇지 않은 경우 위젯은 QApplication::style()을 사용합니다.
이 함수는 style 가 nullptr 가 아닐 경우 Qt::WA_SetStyle 속성을 설정하고, 그렇지 않은 경우 해당 속성을 지웁니다.
style()도 참조하십시오 .
[static] void QGraphicsWidget::setTabOrder(QGraphicsWidget *first, QGraphicsWidget *second)
second 위젯을 포커스 위젯 고리 내에서 이동시켜, Tab 키를 누르면 키보드 포커스가 first 위젯에서 second 위젯으로 이동하도록 합니다.
second 위젯의 탭 순서가 변경되므로, 체인을 다음과 같이 구성해야 합니다:
setTabOrder(a, b); // a to b
setTabOrder(b, c); // a to b to c
setTabOrder(c, d); // a to b to c to d다음과 같이 구성해서는안 됩니다:
// WRONG
setTabOrder(c, d); // c to d
setTabOrder(a, b); // a to b AND c to d
setTabOrder(b, c); // a to b to c, but not c to dfirst 가 nullptr 인 경우, 이는 장면이 Tab 포커스를 획득했을 때(즉, 사용자가 Tab 키를 눌러 포커스가 장면으로 넘어왔을 때) second 가 입력 포커스를 가장 먼저 받아야 함을 의미합니다. second 가 nullptr 인 경우, 이는 장면이 BackTab 포커스를 획득했을 때 first 가 가장 먼저 포커스를 받아야 함을 의미합니다.
기본적으로 탭 순서는 위젯 생성 순서를 사용하여 암시적으로 정의됩니다.
‘ focusPolicy ’ 및 ‘위젯의 키보드 포커스’항목도 참조하십시오 .
void QGraphicsWidget::setWindowFrameMargins(QMarginsF margins)
위젯의 창 테두리 여백을 ` margins`로 설정합니다. 기본 테두리 여백은 스타일에 의해 제공되며, 현재 창 플래그에 따라 달라집니다.
사용자 정의 창 장식을 그리려면, 기본 여백을 재정의하기 위해 사용자 정의 프레임 여백을 설정할 수 있습니다.
unsetWindowFrameMargins(), getWindowFrameMargins(), windowFrameRect()도 참조하십시오 .
void QGraphicsWidget::setWindowFrameMargins(qreal left, qreal top, qreal right, qreal bottom)
위젯의 창 테두리 여백을 left, top, right 및 bottom 로 설정합니다.
이 함수는 오버로드된 함수입니다.
[override virtual] QPainterPath QGraphicsWidget::shape() const
QGraphicsItem::shape() const를 재구현합니다.
[virtual protected] void QGraphicsWidget::showEvent(QShowEvent *event)
Show 이벤트에 대한 이 이벤트 핸들러는 위젯이 표시되기 전에 호출됩니다. 예를 들어, 위젯이 이전에 숨겨져 있던 상태에서 해당 위젯이나 그 상위 요소 중 하나에 대해 setVisible(true)가 호출된 경우입니다.
이 이벤트 핸들러를 재구현하여 위젯이 표시되는 시점을 감지할 수 있습니다. event 에서 QEvent::accept() 또는 QEvent::ignore()를 호출해도 아무런 효과가 없습니다.
hideEvent(), QWidget::showEvent() 및 ItemVisibleChange도 참조하십시오 .
[override virtual protected] QSizeF QGraphicsWidget::sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
QGraphicsLayoutItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const를 재구현합니다.
QStyle *QGraphicsWidget::style() const
위젯의 스타일에 대한 포인터를 반환합니다. 이 위젯에 명시적으로 할당된 스타일이 없는 경우, 대신 씬의 스타일이 반환됩니다. 마찬가지로, 씬에 할당된 스타일이 없는 경우, 이 함수는 ` QApplication::style()`를 반환합니다.
setStyle()도 참조하십시오 .
bool QGraphicsWidget::testAttribute(Qt::WidgetAttribute attribute) const
이 위젯에 대해 ` attribute `가 활성화되어 있으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.
setAttribute()도 참조하십시오 .
[override virtual] int QGraphicsWidget::type() const
QGraphicsItem::type() const를 재구현합니다.
[virtual protected] void QGraphicsWidget::ungrabKeyboardEvent(QEvent *event)
event 에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 QEvent::UngrabKeyboard 이벤트에 대한 알림을 수신할 수 있습니다.
ungrabKeyboard() 및 ungrabMouse()도 참조하십시오 .
[virtual protected] void QGraphicsWidget::ungrabMouseEvent(QEvent *event)
event 에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 QEvent::UngrabMouse 이벤트에 대한 알림을 수신할 수 있습니다.
ungrabMouse() 및 ungrabKeyboard()도 참조하십시오 .
void QGraphicsWidget::unsetWindowFrameMargins()
창 프레임 여백을 스타일에서 제공하는 기본값으로 재설정합니다.
setWindowFrameMargins(), getWindowFrameMargins() 및 windowFrameRect()도 참조하십시오 .
[override virtual protected] void QGraphicsWidget::updateGeometry()
QGraphicsLayoutItem::updateGeometry()를 재구현합니다.
이 위젯이 현재 레이아웃에 의해 관리되고 있는 경우, 이 함수는 레이아웃에 위젯의 크기 힌트가 변경되었음을 알리며, 레이아웃은 이에 따라 위젯의 크기를 조정하고 위치를 재설정해야 할 수 있습니다.
위젯의 sizeHint()가 변경된 경우 이 함수를 호출하십시오.
QGraphicsLayout::invalidate()도 참조하십시오 .
[virtual protected] bool QGraphicsWidget::windowFrameEvent(QEvent *event)
event 에 대한 이 이벤트 핸들러는, 해당 위젯이 창인 경우 창 프레임에 대한 이벤트를 수신합니다. 기본 구현은 이동, 크기 조정 등과 같은 기본 창 프레임 상호작용을 지원합니다.
QGraphicsWidget 의 서브클래스에서 이 핸들러를 재구현하여 사용자 정의 창 프레임 상호작용 기능을 제공할 수 있습니다.
event 가 인식되어 처리된 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
event()도 참조하십시오 .
QRectF QGraphicsWidget::windowFrameGeometry() const
위젯의 기하 정보를 창 테두리를 포함하여 부모 좌표계로 반환합니다.
windowFrameRect(), getWindowFrameMargins(), setWindowFrameMargins()도 참조하십시오 .
QRectF QGraphicsWidget::windowFrameRect() const
위젯의 로컬 직사각형 영역(창 테두리 포함)을 반환합니다.
windowFrameGeometry(), getWindowFrameMargins() 및 setWindowFrameMargins()도 참조하십시오 .
[virtual protected] Qt::WindowFrameSection QGraphicsWidget::windowFrameSectionAt(const QPointF &pos) const
pos 위치에 있는 창 테두리 부분을 반환하며, 해당 위치에 창 테두리 부분이 없는 경우 Qt::NoSection 를 반환합니다.
이 함수는 QGraphicsWidget 의 기본 구현에서 창 프레임 상호 작용에 사용됩니다.
창을 상호작용 방식으로 이동하거나 크기를 조정하는 방식을 사용자 정의하려면 이 함수를 재구현할 수 있습니다. 예를 들어, 창 크기를 오른쪽 하단 모서리를 통해서만 조정할 수 있도록 하려면, Qt::BottomRightSection 을 제외한 모든 섹션에 대해 Qt::NoSection 을 반환하도록 이 함수를 재구현할 수 있습니다.
windowFrameEvent(), paintWindowFrame() 및 windowFrameGeometry()도 참조하십시오 .
Qt::WindowType QGraphicsWidget::windowType() const
위젯의 창 유형을 반환합니다.
windowFlags(), isWindow(), isPanel()도 참조하십시오 .
© 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.