이 페이지에서

QWidget Class

QWidget 클래스는 모든 사용자 인터페이스 객체의 기본 클래스입니다. 더 보기...

공개 유형

enum RenderFlag { DrawWindowBackground, DrawChildren, IgnoreMask }
flags RenderFlags

속성

공개 함수

QWidget(QWidget*parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
가상 ~QWidget()
bool acceptDrops() const
QString accessibleDescription() const
QString accessibleIdentifier() const
QString accessibleName() const
QList<QAction *> actions() const
void activateWindow()
void addAction(QAction*action)
(since 6.3) QAction *addAction(const QString&text)
(since 6.3) QAction *addAction(const QIcon&icon, const QString&text)
(since 6.3) QAction *addAction(const QString&text, const QKeySequence&shortcut)
(since 6.3) QAction *addAction(const QIcon&icon, const QString&text, const QKeySequence&shortcut)
(since 6.3) QAction *addAction(const QString&text, Args &&... args)
(since 6.3) QAction *addAction(const QIcon&icon, const QString&text, Args &&... args)
(since 6.3) QAction *addAction(const QString&text, const QKeySequence&shortcut, Args &&... args)
(since 6.3) QAction *addAction(const QIcon&icon, const QString&text, const QKeySequence&shortcut, Args &&... args)
(since 6.3) QAction *addAction(const QString&text, const QObject*receiver, const char*member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QIcon&icon, const QString&text, const QObject*receiver, const char*member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QString&text, const QKeySequence&shortcut, const QObject*receiver, const char*member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QIcon&icon, const QString&text, const QKeySequence&shortcut, const QObject*receiver, const char*member, Qt::ConnectionType type = Qt::AutoConnection)
void addActions(const QList<QAction *>&actions)
void adjustSize()
bool autoFillBackground() const
QPalette::ColorRole backgroundRole() const
QBackingStore *backingStore() const
QSize baseSize() const
QWidget *childAt(int x, int y) const
QWidget *(const QPoint &p) constchildAt(const QPoint&p) const
(since 6.8) QWidget *childAt(const QPointF&p) const
QRect childrenRect() const
QRegion childrenRegion() const
void clearFocus()
void clearMask()
QMargins contentsMargins() const
QRect contentsRect() const
Qt::ContextMenuPolicy contextMenuPolicy() const
QCursor cursor() const
WId effectiveWinId() const
void ensurePolished() const
Qt::FocusPolicy focusPolicy() const
QWidget *focusProxy() const
QWidget *() constfocusWidget() const
const QFont &font() const
QFontInfo fontInfo() const
QFontMetrics fontMetrics() const
QPalette::ColorRole foregroundRole() const
QRect frameGeometry() const
QSize frameSize() const
const QRect &geometry() const
QPixmap grab(const QRect&rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))
void grabGesture(Qt::GestureType gesture, Qt::GestureFlags flags = Qt::GestureFlags())
void grabKeyboard()
void grabMouse()
void grabMouse(const QCursor&cursor)
int grabShortcut(const QKeySequence&key, Qt::ShortcutContext context = Qt::WindowShortcut)
QGraphicsEffect *graphicsEffect() const
QGraphicsProxyWidget *graphicsProxyWidget() const
bool hasFocus() const
가상 bool hasHeightForWidth() const
bool hasMouseTracking() const
bool hasTabletTracking() const
int height() const
가상 int heightForWidth(int w) const
Qt::InputMethodHints inputMethodHints() const
가상 QVariant inputMethodQuery(Qt::InputMethodQuery query) const
void insertAction(QAction*before, QAction*action)
void insertActions(QAction*before, const QList<QAction *>&actions)
bool isActiveWindow() const
bool isAncestorOf(const QWidget*child) const
bool isEnabled() const
bool isEnabledTo(const QWidget*ancestor) const
bool isFullScreen() const
bool isHidden() const
bool isMaximized() const
bool isMinimized() const
bool isModal() const
bool isVisible() const
bool isVisibleTo(const QWidget*ancestor) const
bool isWindow() const
bool isWindowModified() const
QLayout *layout() const
Qt::LayoutDirection layoutDirection() const
QLocale locale() const
(since 6.0) QPointF mapFrom(const QWidget*parent, const QPointF&pos) const
QPoint mapFrom(const QWidget*parent, const QPoint&pos) const
(since 6.0) QPointF mapFromGlobal(const QPointF&pos) const
QPoint mapFromGlobal(const QPoint&pos) const
(since 6.0) QPointF mapFromParent(const QPointF&pos) const
QPoint mapFromParent(const QPoint&pos) const
(since 6.0) QPointF mapTo(const QWidget*parent, const QPointF&pos) const
QPoint mapTo(const QWidget*parent, const QPoint&pos) const
(since 6.0) QPointF mapToGlobal(const QPointF&pos) const
QPoint mapToGlobal(const QPoint&pos) const
(since 6.0) QPointF mapToParent(const QPointF&pos) const
QPoint mapToParent(const QPoint&pos) const
QRegion mask() const
int maximumHeight() const
QSize maximumSize() const
int maximumWidth() const
int minimumHeight() const
QSize minimumSize() const
가상 QSize minimumSizeHint() const
int minimumWidth() const
void move(int x, int y)
void move(const QPoint &)
QWidget *nativeParentWidget() const
QWidget *nextInFocusChain() const
QRect normalGeometry() const
void overrideWindowFlags(Qt::WindowFlags flags)
const QPalette &palette() const
QWidget *parentWidget() const
QPoint pos() const
QWidget *previousInFocusChain() const
QRect rect() const
void releaseKeyboard()
void releaseMouse()
void releaseShortcut(int id)
void removeAction(QAction*action)
void render(QPaintDevice*target, const QPoint&targetOffset = QPoint(), const QRegion&sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))
void render(QPainter*painter, const QPoint&targetOffset = QPoint(), const QRegion&sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))
void repaint(const QRect&rect)
void repaint(const QRegion&rgn)
void repaint(int x, int y, int w, int h)
void resize(int w, int h)
void resize(const QSize &)
bool restoreGeometry(const QByteArray&geometry)
QByteArray saveGeometry() const
QScreen *screen() const
void scroll(int dx, int dy)
void scroll(int dx, int dy, const QRect&r)
void setAcceptDrops(bool on)
void setAccessibleDescription(const QString&description)
void setAccessibleIdentifier(const QString&identifier)
void setAccessibleName(const QString&name)
void setAttribute(Qt::WidgetAttribute 속성, bool on = true)
void setAutoFillBackground(bool enabled)
void setBackgroundRole(QPalette::ColorRole 역할)
void setBaseSize(const QSize &)
void setBaseSize(int basew, int baseh)
void setContentsMargins(int left, int top, int right, int bottom)
void setContentsMargins(const QMargins&margins)
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)
void setCursor(const QCursor &)
void setFixedHeight(int h)
void setFixedSize(const QSize&s)
void setFixedSize(int w, int h)
void setFixedWidth(int w)
void setFocus(Qt::FocusReason reason)
void setFocusPolicy(Qt::FocusPolicy policy)
void setFocusProxy(QWidget*w)
void setFont(const QFont &)
void setForegroundRole(QPalette::ColorRole role)
void setGeometry(int x, int y, int w, int h)
void setGeometry(const QRect &)
void setGraphicsEffect(QGraphicsEffect*effect)
void setInputMethodHints(Qt::InputMethodHints hints)
void setLayout(QLayout*layout)
void setLayoutDirection(Qt::LayoutDirection direction)
void setLocale(const QLocale&locale)
void setMask(const QBitmap&bitmap)
void setMask(const QRegion&region)
void setMaximumHeight(int maxh)
void setMaximumSize(const QSize &)
void setMaximumSize(int maxw, int maxh)
void setMaximumWidth(int maxw)
void setMinimumHeight(int minh)
void setMinimumSize(const QSize &)
void setMinimumSize(int minw, int minh)
void setMinimumWidth(int minw)
void setMouseTracking(bool enable)
void setPalette(const QPalette &)
void setParent(QWidget*parent)
void setParent(QWidget*parent, Qt::WindowFlags f)
void setScreen(QScreen*screen)
void setShortcutAutoRepeat(int id, bool enable = true)
void setShortcutEnabled(int id, bool enable = true)
void setSizeIncrement(const QSize &)
void setSizeIncrement(int w, int h)
void setSizePolicy(QSizePolicy)
void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
void setStatusTip(const QString &)
void setStyle(QStyle*style)
void setTabletTracking(bool enable)
void setToolTip(const QString &)
void setToolTipDuration(int msec)
void setUpdatesEnabled(bool enable)
void setWhatsThis(const QString &)
void setWindowFilePath(const QString&filePath)
void setWindowFlag(Qt::WindowType flag, bool on = true)
void setWindowFlags(Qt::WindowFlags type)
void setWindowIcon(const QIcon&icon)
void setWindowModality(Qt::WindowModality windowModality)
void setWindowOpacity(qreal level)
void setWindowRole(const QString&role)
void setWindowState(Qt::WindowStates windowState)
void setupUi(QWidget*widget)
QSize size() const
가상 QSize sizeHint() const
QSize sizeIncrement() const
QSizePolicy sizePolicy() const
void stackUnder(QWidget*w)
QString statusTip() const
QStyle *style() const
QString styleSheet() const
bool testAttribute(Qt::WidgetAttribute 속성) const
QString toolTip() const
int toolTipDuration() const
bool underMouse() const
void ungrabGesture(Qt::GestureType 제스처)
void unsetCursor()
void unsetLayoutDirection()
void unsetLocale()
void update(const QRect&rect)
void update(const QRegion&rgn)
void update(int x, int y, int w, int h)
void updateGeometry()
bool updatesEnabled() const
QRegion visibleRegion() const
QString whatsThis() const
int width() const
WId winId() const
QWidget *window() const
QString windowFilePath() const
Qt::WindowFlags windowFlags() const
QWindow *windowHandle() const
QIcon windowIcon() const
Qt::WindowModality windowModality() const
qreal windowOpacity() const
QString windowRole() const
Qt::WindowStates windowState() const
QString windowTitle() const
Qt::WindowType windowType() const
int x() const
int y() const

재구현된 공용 함수

virtual QPaintEngine *paintEngine() const override

공개 슬롯

bool close()
void hide()
void lower()
void raise()
void repaint()
void setDisabled(bool disable)
void setEnabled(bool)
void setFocus()
void setHidden(bool hidden)
void setStyleSheet(const QString &styleSheet)
virtual void setVisible(bool visible)
void setWindowModified(bool)
void setWindowTitle(const QString &)
void show()
void showFullScreen()
void showMaximized()
void showMinimized()
void showNormal()
void update()

신호

void customContextMenuRequested(const QPoint &pos)
void windowIconChanged(const QIcon &icon)
void windowTitleChanged(const QString &title)

정적 공용 멤버

QWidget *createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
QWidget *find(WId id)
QWidget *keyboardGrabber()
QWidget *mouseGrabber()
void setTabOrder(QWidget *first, QWidget *second)
(since 6.6) void setTabOrder(std::initializer_list<QWidget *> widgets)

보호된 함수

virtual void actionEvent(QActionEvent *event)
virtual void changeEvent(QEvent *event)
virtual void closeEvent(QCloseEvent *event)
virtual void contextMenuEvent(QContextMenuEvent *event)
void create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)
void destroy(bool destroyWindow = true, bool destroySubWindows = true)
virtual void dragEnterEvent(QDragEnterEvent *event)
virtual void dragLeaveEvent(QDragLeaveEvent *event)
virtual void dragMoveEvent(QDragMoveEvent *event)
virtual void dropEvent(QDropEvent *event)
virtual void enterEvent(QEnterEvent *event)
virtual void focusInEvent(QFocusEvent *event)
bool focusNextChild()
virtual bool focusNextPrevChild(bool next)
virtual void focusOutEvent(QFocusEvent *event)
bool focusPreviousChild()
virtual void hideEvent(QHideEvent *event)
virtual void inputMethodEvent(QInputMethodEvent *event)
virtual void keyPressEvent(QKeyEvent *event)
virtual void keyReleaseEvent(QKeyEvent *event)
virtual void leaveEvent(QEvent *event)
virtual void mouseDoubleClickEvent(QMouseEvent *event)
virtual void mouseMoveEvent(QMouseEvent *event)
virtual void mousePressEvent(QMouseEvent *event)
virtual void mouseReleaseEvent(QMouseEvent *event)
virtual void moveEvent(QMoveEvent *event)
virtual bool nativeEvent(const QByteArray &eventType, void *message, qintptr *result)
virtual void paintEvent(QPaintEvent *event)
virtual void resizeEvent(QResizeEvent *event)
virtual void showEvent(QShowEvent *event)
virtual void tabletEvent(QTabletEvent *event)
virtual void wheelEvent(QWheelEvent *event)

재구현된 보호 함수

virtual bool event(QEvent*event) override
virtual void initPainter(QPainter*painter) const override
virtual int metric(QPaintDevice::PaintDeviceMetric m) const override

보호된 슬롯

void updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll)

매크로

상세 설명

위젯은 사용자 인터페이스의 기본 단위입니다. 위젯은 윈도우 시스템으로부터 마우스, 키보드 및 기타 이벤트를 수신하고, 화면에 자체의 표현을 그립니다. 모든 위젯은 직사각형 형태이며, Z-순서대로 정렬됩니다. 위젯은 부모 위젯과 그 앞에 있는 위젯들에 의해 잘립니다.

부모 위젯에 포함되지 않은 위젯을 창이라고 합니다. 일반적으로 창에는 프레임과 제목 표시줄이 있지만, 적절한 ` window flags`를 사용하여 이러한 장식 요소가 없는 창을 만들 수도 있습니다. Qt에서 ` QMainWindow `와 ` QDialog `의 다양한 하위 클래스가 가장 일반적인 창 유형입니다.

모든 위젯의 생성자는 하나 또는 두 개의 표준 인자를 받습니다:

  1. QWidget *parent = nullptr 는 새 위젯의 부모입니다. 이 값이 nullptr (기본값)인 경우, 새 위젯은 창이 됩니다. 그렇지 않은 경우, 새 위젯은 parent의 자식이 되며 parent의 기하학적 크기에 제약을 받게 됩니다( Qt::Window 를 창 플래그로 지정하지 않는 한).
  2. Qt::WindowFlags f = { } (사용 가능한 경우) 창 플래그를 설정합니다. 기본값은 대부분의 위젯에 적합하지만, 예를 들어 창 시스템 프레임이 없는 창을 얻으려면 특수 플래그를 사용해야 합니다.

QWidget에는 많은 멤버 함수가 있지만, 그중 일부는 직접적인 기능이 거의 없습니다. 예를 들어, QWidget에는 font 속성이 있지만, QWidget 자체는 이를 절대 사용하지 않습니다. QLabel, QPushButton, QListWidget, QTabWidget 와 같이 실제 기능을 제공하는 하위 클래스가 많이 있습니다.

최상위 위젯과 자식 위젯

부모 위젯이 없는 위젯은 항상 독립적인 창(최상위 위젯)입니다. 이러한 위젯의 경우, setWindowTitle()와 setWindowIcon()가 각각 제목 표시줄과 아이콘을 설정합니다.

창이 아닌 위젯은 자식 위젯으로, 부모 위젯 내에 표시됩니다. Qt Widgets의 대부분의 위젯은 주로 자식 위젯으로 유용하게 사용됩니다. 예를 들어, 버튼을 최상위 창으로 표시할 수는 있지만, 대부분의 사용자는 QDialog 와 같은 다른 위젯 안에 버튼을 배치하는 것을 선호합니다.

라벨이 지정된 하위 위젯이 포함된 예약 위젯

다양한 자식 위젯을 포함하는 부모 위젯.

위의 다이어그램은 QGridLayout 에서 제공하는 레이아웃 내에서 다양한 자식 위젯을 포함하기 위해 사용되는 QGroupBox 위젯을 보여줍니다. QLabel 자식 위젯들은 전체 크기를 나타내기 위해 윤곽선이 표시되어 있습니다.

QWidget을 사용하여 자식 위젯을 포함시키려면, 일반적으로 부모 QWidget에 레이아웃을 추가해야 합니다. 자세한 내용은 레이아웃 관리 (Layout Management )를 참조하십시오.

복합 위젯

위젯이 여러 자식 위젯을 그룹화하는 컨테이너로 사용될 때, 이를 복합 위젯이라고 합니다. 복합 위젯은 필요한 시각적 속성(예: QFrame)을 가진 위젯을 생성하고, 일반적으로 레이아웃을 통해 관리되는 자식 위젯을 추가함으로써 만들 수 있습니다.

복합 위젯은 QWidget이나 QFrame 과 같은 표준 위젯을 서브클래싱하고, 서브클래스의 생성자에서 필요한 레이아웃과 자식 위젯을 추가하여 생성할 수도 있습니다. Qt와 함께 제공되는 예제 중 상당수가 이 방식을 사용하며, Qt Widgets 튜토리얼에서도 다루고 있습니다.

사용자 정의 위젯 및 페인팅

QWidget은 QPaintDevice 의 서브클래스이므로, 서브클래스를 사용하여 QPainter 클래스의 인스턴스를 통해 일련의 페인팅 작업을 조합하여 사용자 정의 콘텐츠를 표시할 수 있습니다. 이 접근 방식은 애플리케이션이 씬에 항목을 추가하고 프레임워크 자체가 이를 렌더링하는 Graphics View Framework에서 사용하는 캔버스 스타일 접근 방식과는 대조적입니다.

각 위젯은 paintEvent() 함수 내에서 모든 페인팅 작업을 수행합니다. 이 함수는 외부 변경 사항으로 인해 위젯을 다시 그려야 할 때나 애플리케이션의 요청이 있을 때마다 호출됩니다.

'아날로그 시계' 예제는 간단한 위젯이 페인트 이벤트를 처리하는 방법을 보여줍니다.

크기 힌트 및 크기 정책

새로운 위젯을 구현할 때는 거의 항상 ` sizeHint()`를 재구현하여 위젯에 적절한 기본 크기를 제공하고, ` setSizePolicy()`를 사용하여 올바른 크기 정책을 설정하는 것이 유용합니다.

기본적으로 크기 힌트를 제공하지 않는 복합 위젯은 자식 위젯의 공간 요구 사항에 따라 크기가 조정됩니다.

크기 정책을 통해 레이아웃 관리 시스템에 적절한 기본 동작을 제공할 수 있으므로, 다른 위젯이 해당 위젯을 쉽게 포함하고 관리할 수 있습니다. 기본 크기 정책은 크기 힌트가 위젯의 선호 크기를 나타냄을 의미하며, 이는 많은 위젯에 충분히 적합합니다.

참고: 최상위 위젯의크기는 바탕 화면 높이와 너비의 2/3로 제한됩니다. 이 제한이 부적절할 경우, ` resize()`를 사용하여 위젯의 크기를 수동으로 조정할 수 있습니다.

이벤트

위젯은 일반적으로 사용자 동작으로 인해 발생하는 이벤트에 반응합니다. Qt는 각 이벤트에 대한 정보를 포함하는 ` QEvent ` 하위 클래스의 인스턴스를 사용하여 특정 이벤트 핸들러 함수를 호출함으로써 위젯에 이벤트를 전달합니다.

위젯에 자식 위젯만 포함되어 있다면, 이벤트 핸들러를 구현할 필요가 없을 것입니다. 자식 위젯에서 마우스 클릭을 감지하려면, 위젯의 ` mousePressEvent()` 함수 내에서 자식 위젯의 ` underMouse()` 함수를 호출하십시오.

Scribble 예제는 마우스 이동, 버튼 클릭 및 창 크기 조정을 처리하기 위해 더 광범위한 이벤트 세트를 구현합니다.

사용자 정의 위젯의 동작과 콘텐츠는 직접 구현해야 하지만, 가장 일반적인 것부터 시작하여 QWidget과 관련된 이벤트에 대한 간략한 개요는 다음과 같습니다.

  • paintEvent()는 위젯을 다시 그려야 할 때마다 호출됩니다. 사용자 정의 콘텐츠를 표시하는 모든 위젯은 이 함수를 구현해야 합니다. QPainter 를 사용한 그리기 작업은 paintEvent() 함수 내에서만 수행되거나, paintEvent()에 의해 호출된 함수 내에서만 수행될 수 있습니다.
  • resizeEvent()는 위젯의 크기가 변경되었을 때 호출됩니다.
  • mousePressEvent()는 마우스 커서가 위젯 내부에 있을 때 마우스 버튼이 눌리거나, 위젯이 grabMouse()을 사용하여 마우스를 잡았을 때 호출됩니다. 마우스 버튼을 누른 채로 놓지 않는 것은 사실상 grabMouse()를 호출하는 것과 동일합니다.
  • mouseReleaseEvent()는 마우스 버튼이 놓일 때 호출됩니다. 위젯은 해당 마우스 누름 이벤트를 수신한 경우 마우스 릴리스 이벤트도 수신합니다. 즉, 사용자가 위젯 내에서 마우스를 누른 후 마우스 버튼을 놓기 전에 마우스를 다른 곳으로 드래그하면, 위젯은 릴리스 이벤트를 수신합니다. 단, 한 가지 예외가 있습니다. 마우스 버튼을 누른 상태에서 팝업 메뉴가 나타나면, 이 팝업 메뉴가 즉시 마우스 이벤트를 가로챕니다.
  • mouseDoubleClickEvent()는 사용자가 위젯 내에서 더블 클릭을 할 때 호출됩니다. 사용자가 더블 클릭을 하면, 위젯은 마우스 누름 이벤트, 마우스 릴리스 이벤트(마우스 클릭 이벤트), 두 번째 마우스 누름, 이 이벤트, 그리고 마지막으로 두 번째 마우스 릴리스 이벤트를 수신합니다. (이 작업 중에 마우스를 고정하지 않으면 일부 마우스 이동 이벤트도 수신될 수 있습니다.) 두 번째 클릭이 도착하기 전까지는 클릭과 더블 클릭을 구분할 수 없습니다. (이것이 바로 대부분의 GUI 서적에서 더블 클릭을 별도의 동작을 유발하는 것이 아니라 싱글 클릭의 확장으로 처리할 것을 권장하는 이유 중 하나입니다.)

키보드 입력을 받는 위젯은 몇 가지 이벤트 핸들러를 추가로 재구현해야 합니다:

  • keyPressEvent()는 키가 눌릴 때마다 호출되며, 키를 충분히 오래 눌러 자동 반복 상태가 되었을 때 다시 호출됩니다. Tab 및 Shift+Tab 키는 포커스 변경 메커니즘에서 사용되지 않는 경우에만 위젯으로 전달됩니다. 해당 키들이 위젯에서 처리되도록 하려면 QWidget::event()를 재구현해야 합니다.
  • focusInEvent()는 위젯이 키보드 포커스를 획득했을 때 호출됩니다( setFocusPolicy()를 호출한 경우). 올바르게 동작하는 위젯은 명확하면서도 눈에 띄지 않는 방식으로 키보드 포커스를 보유하고 있음을 나타냅니다.
  • focusOutEvent()는 위젯이 키보드 포커스를 잃을 때 호출됩니다.

또한 덜 흔한 이벤트 핸들러 중 일부를 재구현해야 할 수도 있습니다:

  • mouseMoveEvent()는 마우스 버튼이 눌린 상태에서 마우스가 이동할 때마다 호출됩니다. 이는 드래그 앤 드롭 작업 중에 유용할 수 있습니다. setMouseTracking()를 (true)로 호출하면, 버튼이 눌려 있지 않은 상태에서도 마우스 이동 이벤트를 수신하게 됩니다. ( 드래그 앤 드롭 가이드도 참조하십시오.)
  • keyReleaseEvent()는 키가 놓일 때마다, 그리고 키가 눌려 있는 동안(키가 자동 반복되는 경우) 호출됩니다. 이 경우 위젯은 반복될 때마다 키 릴리스 및 키 프레스 이벤트 한 쌍을 수신하게 됩니다. Tab 및 Shift+Tab 키는 포커스 변경 메커니즘에서 사용되지 않는 경우에만 위젯으로 전달됩니다. 해당 키들이 위젯에서 처리되도록 하려면 QWidget::event()을 재구현해야 합니다.
  • wheelEvent()는 위젯이 포커스를 가지고 있는 동안 사용자가 마우스 휠을 돌릴 때마다 호출됩니다.
  • enterEvent()는 마우스가 위젯의 화면 영역에 진입할 때 호출됩니다. (여기에는 위젯의 자식 위젯이 차지하는 화면 영역은 제외됩니다.)
  • leaveEvent()는 마우스가 위젯의 화면 영역을 벗어날 때 호출됩니다. 마우스가 자식 위젯으로 들어가는 경우에는 leaveEvent()가 호출되지 않습니다.
  • moveEvent()는 위젯이 부모에 대해 상대적으로 이동되었을 때 호출됩니다.
  • closeEvent()는 사용자가 위젯을 닫을 때(또는 close()가 호출될 때) 호출됩니다.

QEvent::Type 에 대한 문서에는 다소 생소한 이벤트들도 설명되어 있습니다. 이러한 이벤트를 처리하려면 event()을 직접 재구현해야 합니다.

event()의 기본 구현은 Tab 및 Shift+Tab (키보드 포커스를 이동하기 위해)를 처리하며, 다른 대부분의 이벤트는 위에서 설명한 보다 특화된 핸들러 중 하나로 전달합니다.

이벤트와 이를 전달하는 메커니즘에 대해서는 ‘이벤트 시스템’에서 다룹니다.

함수 및 속성 그룹

컨텍스트함수와 속성
창 함수show(), hide(), raise(), lower(), close().
최상위 윈도우windowModified, windowTitle, windowIcon, isActiveWindow, activateWindow(), minimized, showMinimized(), maximized, showMaximized(), fullScreen, showFullScreen(), showNormal().
창 내용update(), repaint(), scroll().
기하 구조pos, x(), y(), rect, size, width(), height(), move(), resize(), sizePolicy, sizeHint(), minimumSizeHint(), updateGeometry(), layout(), frameGeometry, geometry, childrenRect, childrenRegion, adjustSize(), mapFromGlobal(), mapToGlobal(), mapFromParent(), mapToParent(), maximumSize, minimumSize, sizeIncrement, baseSize, setFixedSize()
Modevisible, isVisibleTo(), enabled, isEnabledTo(), modal, isWindow(), mouseTracking, updatesEnabled, visibleRegion().
외관 및 사용감style(), setStyle(), styleSheet, cursor, font, palette, backgroundRole(), setBackgroundRole(), fontInfo(), fontMetrics().
키보드 포커스 기능focus, focusPolicy, setFocus(), clearFocus(), setTabOrder(), setFocusProxy(), focusNextChild(), focusPreviousChild().
마우스 및 키보드 제어grabMouse(), releaseMouse(), grabKeyboard(), releaseKeyboard(), mouseGrabber(), keyboardGrabber().
이벤트 핸들러event(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), keyPressEvent(), keyReleaseEvent(), focusInEvent(), focusOutEvent(), wheelEvent(), enterEvent(), leaveEvent(), paintEvent(), moveEvent(), resizeEvent(), closeEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), childEvent(), showEvent(), hideEvent(), customEvent(). changeEvent(),
시스템 함수parentWidget(), window(), setParent(), winId(), find(), metric().
컨텍스트 메뉴contextMenuPolicy, contextMenuEvent(), customContextMenuRequested(), actions()
대화형 도움말setToolTip(), setWhatsThis()

위젯 스타일 시트

각 플랫폼의 표준 위젯 스타일 외에도, 위젯은 style sheet 에 지정된 규칙에 따라 스타일을 적용할 수 있습니다. 이 기능을 사용하면 특정 위젯의 외관을 사용자 정의하여 사용자에게 해당 위젯의 용도에 대한 시각적 단서를 제공할 수 있습니다. 예를 들어, 버튼을 특정 방식으로 스타일링하여 해당 버튼이 파괴적인 동작을 수행함을 나타낼 수 있습니다.

위젯 스타일 시트의 사용법에 대한 자세한 내용은 Qt 스타일 시트 문서에 설명되어 있습니다.

투명도 및 더블 버퍼링

QWidget은 렌더링 시 자동으로 더블 버퍼링을 수행하므로, 깜빡임을 방지하기 위해 paintEvent()에 더블 버퍼링 코드를 작성할 필요가 없습니다.

Qt::WA_PaintOnScreen 가 설정되어 있지 않은 한, 부모 위젯의 내용은 기본적으로 각 자식 위젯으로 전달됩니다. 사용자 정의 위젯은 불규칙한 영역을 업데이트하여(직사각형이 아닌 자식 위젯을 생성하기 위해) 또는 알파 성분이 100% 미만인 색상으로 렌더링함으로써 이 기능을 활용할 수 있습니다. 다음 다이어그램은 다양한 효과를 얻기 위해 사용자 정의 위젯의 속성과 프로퍼티를 어떻게 미세 조정할 수 있는지 보여줍니다.

배경 속성이 각각 ‘투명’, ‘흰색 채움’, ‘초기화되지 않음’인 집 모양의 픽스맵 세 개

위 다이어그램에서는 일부 영역이 제거된 반투명한 직사각형 자식 위젯을 생성하여 부모 위젯(픽스맵을 표시하는 QLabel )에 추가합니다. 그런 다음 다양한 효과를 얻기 위해 서로 다른 속성과 위젯 속성을 설정합니다.

  • 왼쪽 위젯에는 추가적인 속성이나 위젯 속성이 설정되어 있지 않습니다. 이 기본 상태는 투명성을 가지거나, 불규칙한 모양을 띠거나, 불투명한 브러시로 전체 영역을 채우지 않는 대부분의 사용자 정의 위젯에 적합합니다.
  • 가운데 위젯에는 ‘ autoFillBackground ’ 속성이 설정되어 있습니다. 이 속성은 위젯이 기본 배경을 제공해야 하며, 불투명한 브러시로 전체 영역을 채우지 않는 사용자 정의 위젯에 사용됩니다.
  • 오른쪽 위젯에는 ` Qt::WA_OpaquePaintEvent ` 위젯 속성이 설정되어 있습니다. 이는 위젯이 전체 영역을 불투명한 색상으로 채울 것임을 나타냅니다. 위젯의 영역은 처음에는 초기화되지 않은 상태이며, 다이어그램에서는 덧칠된 영역을 통해 비치는 빨간색 대각선 격자 패턴으로 표시됩니다.

실시간 플로팅이나 그래프 그리기 위젯과 같이 단순한 배경색으로 사용자 정의 위젯을 빠르게 업데이트하려면, 적절한 배경색을 정의하고( QPalette::Window 역할을 가진 ` setBackgroundRole()` 사용), ` autoFillBackground ` 속성을 설정한 다음, 위젯의 ` paintEvent()`에서 필요한 그리기 기능만 구현하는 것이 좋습니다.

예를 들어, 비디오 스트리밍 위젯과 같이 불투명한 콘텐츠로 전체 영역을 지속적으로 덮어 그리는 사용자 정의 위젯을 빠르게 업데이트하려면, 위젯의 Qt::WA_OpaquePaintEvent 을 설정하여 위젯 배경을 다시 그리는 데 따르는 불필요한 오버헤드를 피하는 것이 좋습니다.

위젯에 Qt::WA_OpaquePaintEvent 위젯 속성과 autoFillBackground 속성이 모두 설정된 경우, Qt::WA_OpaquePaintEvent 속성이 우선합니다. 요구 사항에 따라 둘 중 하나를 선택해야 합니다.

부모 위젯의 내용도 표준 Qt Widgets로 전달됩니다. 아래 다이어그램에서 볼 수 있듯이, 부모 위젯이 비표준 방식으로 꾸며진 경우 이는 예상치 못한 결과를 초래할 수 있습니다.

한 위젯은 배경이 투명하고, 다른 위젯은 배경이 채워져 있습니다.

서브클래싱에 의존하지 않고 표준 Qt Widgets의 그리기 동작을 사용자 정의할 수 있는 범위는 사용자 정의 Widgets의 경우보다 약간 제한적입니다. 일반적으로 표준 Widgets의 원하는 외관은 ` autoFillBackground ` 속성을 설정하여 구현할 수 있습니다.

반투명 창 만들기

합성(compositing)을 지원하는 윈도우 시스템에서는 반투명 영역이 있는 창을 만들 수 있습니다.

최상위 위젯에서 이 기능을 활성화하려면 ` setAttribute()`를 사용하여 ` Qt::WA_TranslucentBackground ` 속성을 설정하고, 부분적으로 투명하게 만들려는 영역의 배경이 불투명한 색상이 아닌 색상으로 그려지도록 해야 합니다.

플랫폼 참고 사항:

  • X11: 이 기능은 ARGB 비주얼을 지원하는 X 서버와 합성(compositing)을 지원하는 윈도우 매니저를 사용해야 합니다.
  • Windows: 반투명 효과가 작동하려면 위젯에 Qt::FramelessWindowHint 창 플래그가 설정되어 있어야 합니다.
  • macOS: 반투명 효과가 작동하려면 위젯에 ‘ Qt::FramelessWindowHint ’ 창 플래그가 설정되어 있어야 합니다.

네이티브 위젯 대 알리언 위젯

비네이티브 위젯은 윈도우 시스템에서 인식하지 못하는 위젯입니다. 이러한 위젯에는 연관된 네이티브 윈도우 핸들이 없습니다. 이 기능은 위젯의 그리기 및 크기 조정을 상당히 가속화하고 깜빡임을 제거합니다.

네이티브 창을 사용하는 기존 동작이 필요한 경우, 다음 옵션 중 하나를 선택하십시오:

  1. 환경에서 ` QT_USE_NATIVE_WINDOWS=1 `를 사용하십시오.
  2. 애플리케이션에서 ` Qt::AA_NativeWindows ` 속성을 설정하십시오. 모든 위젯이 네이티브 위젯으로 처리됩니다.
  3. 위젯에 ` Qt::WA_NativeWindow ` 속성을 설정하십시오. 해당 위젯 자체와 그 모든 상위 위젯이 네이티브 위젯으로 변경됩니다( Qt::WA_DontCreateNativeAncestors 가 설정된 경우는 제외).
  4. QWidget::winId 를 호출하여 네이티브 창을 강제 적용합니다(이는 3번을 의미합니다).
  5. Qt::WA_PaintOnScreen 속성을 설정하여 네이티브 창을 강제 적용합니다(이는 3을 의미합니다).

QEvent, QPainter, QGridLayout 및 QBoxLayout도 참조하십시오 .

멤버 유형 문서

enum QWidget::RenderFlag
flags QWidget::RenderFlags

이 열거형은 ` QWidget::render()`를 호출할 때 위젯을 어떻게 렌더링할지 정의합니다.

상수상수설명
QWidget::DrawWindowBackground0x1이 옵션을 활성화하면, autoFillBackground 가 설정되어 있지 않더라도 위젯의 배경이 대상에 렌더링됩니다. 기본적으로 이 옵션은 활성화되어 있습니다.
QWidget::DrawChildren0x2이 옵션을 활성화하면 위젯의 자식 요소들이 대상에 재귀적으로 렌더링됩니다. 기본적으로 이 옵션은 활성화되어 있습니다.
QWidget::IgnoreMask0x4이 옵션을 활성화하면, 대상에 렌더링할 때 위젯의 ` QWidget::mask()`가 무시됩니다. 기본적으로 이 옵션은 비활성화되어 있습니다.

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

속성 설명서

acceptDrops : bool

이 속성은 이 위젯에서 드롭 이벤트가 활성화되어 있는지 여부를 나타냅니다.

이 속성을 true로 설정하면, 이 위젯이 드롭 이벤트를 수신할 수 있음을 시스템에 알립니다.

경고: 드래그 앤 드롭 이벤트 핸들러 내에서 이 속성을 수정하지마십시오 .

기본적으로 이 속성의 값은 ` false`입니다.

액세스 함수:

bool acceptDrops() const
void setAcceptDrops(bool on)

‘드래그 앤 드롭’항목도 참조하십시오 .

accessibleDescription : QString

이 속성은 보조 기술에서 표시되는 위젯의 설명을 담고 있습니다.

위젯의 접근성 설명은 해당 위젯의 기능을 명확히 전달해야 합니다. ' accessibleName '은 짧고 간결한 문자열(예: 저장)이어야 하는 반면, 설명은 '현재 문서를 저장합니다'와 같이 더 자세한 맥락을 제공해야 합니다.

이 속성은 현지화되어야 합니다.

기본적으로 이 속성은 빈 문자열을 포함하며, Qt는 이 정보를 제공하기 위해 툴팁을 대신 사용합니다.

액세스 함수:

QString accessibleDescription() const
void setAccessibleDescription(const QString &description)

QWidget::accessibleName 및 QAccessibleInterface::text()도 참조하십시오 .

[since 6.9] accessibleIdentifier : QString

이 속성은 보조 기술에서 인식하는 위젯의 식별자를 저장합니다.

이 속성이 설정되면, 보조 기술에서 위젯의 접근성 식별자를 사용하여 특정 위젯을 식별할 수 있습니다(예: 자동화된 테스트에서).

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

액세스 함수:

QString accessibleIdentifier() const
void setAccessibleIdentifier(const QString &identifier)

accessibleName : QString

이 속성은 보조 기술에서 인식하는 위젯의 이름을 저장합니다.

이는 스크린 리더와 같은 보조 기술이 이 위젯을 알릴 때 사용하는 기본 이름입니다. 대부분의 위젯에서는 이 속성을 설정할 필요가 없습니다. 예를 들어 QPushButton 의 경우 버튼의 텍스트가 사용됩니다.

위젯에 텍스트가 전혀 없는 경우에는 이 속성을 설정하는 것이 중요합니다. 예를 들어, 아이콘만 포함된 버튼의 경우 스크린 리더와 호환되도록 이 속성을 설정해야 합니다. 이름은 짧아야 하며, 위젯이 전달하는 시각적 정보와 일치해야 합니다.

이 속성은 현지화되어야 합니다.

기본적으로 이 속성은 빈 문자열을 포함합니다.

액세스 함수:

QString accessibleName() const
void setAccessibleName(const QString &name)

QWidget::accessibleDescription 및 QAccessibleInterface::text()도 참조하십시오 .

autoFillBackground : bool

이 속성은 위젯의 배경이 자동으로 채워지는지 여부를 나타냅니다.

이 속성이 활성화되면 Qt는 페인트 이벤트를 호출하기 전에 위젯의 배경을 채웁니다. 사용되는 색상은 위젯의 ` palette`에 정의된 ` QPalette::Window ` 색상 역할에 의해 결정됩니다.

또한, WA_OpaquePaintEvent 또는 WA_NoSystemBackground 속성이 설정되어 있지 않은 한, 창은 항상 QPalette::Window 로 채워집니다.

위젯의 부모가 배경에 정적 그라데이션을 가지고 있는 경우, 이 속성을 비활성화(즉, false로 설정)할 수 없습니다.

경고: Qt 스타일 시트와 함께 이 속성을사용할 때는 주의하십시오. 위젯에 유효한 배경이나 테두리 이미지가 포함된 스타일 시트가 있는 경우, 이 속성은 자동으로 비활성화됩니다.

기본적으로 이 속성의 값은 false 입니다.

액세스 함수:

bool autoFillBackground() const
void setAutoFillBackground(bool enabled)

Qt::WA_OpaquePaintEvent, Qt::WA_NoSystemBackground 및 Transparency and Double Buffering도 참조하십시오 .

baseSize : QSize

이 속성은 위젯의 기본 크기를 나타냅니다.

위젯이 ` sizeIncrement()`를 정의한 경우, 이 기본 크기는 적절한 위젯 크기를 계산하는 데 사용됩니다.

기본적으로 새로 생성된 위젯의 경우, 이 속성에는 너비와 높이가 0인 크기가 포함됩니다.

액세스 함수:

QSize baseSize() const
void setBaseSize(const QSize &)
void setBaseSize(int basew, int baseh)

setSizeIncrement()도 참조하십시오 .

[read-only] childrenRect : QRect

이 속성은 위젯의 자식 요소들의 경계 사각형을 저장합니다.

숨겨진 자식 요소는 제외됩니다.

기본적으로 자식이 없는 위젯의 경우, 이 속성은 원점에 위치한 너비와 높이가 0인 사각형을 포함합니다.

액세스 함수:

QRect childrenRect() const

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

[read-only] childrenRegion : QRegion

이 속성은 위젯의 자식 요소들이 차지하는 영역을 합친 크기를 나타냅니다.

숨겨진 자식 요소는 제외됩니다.

기본적으로 자식이 없는 위젯의 경우, 이 속성은 빈 영역을 포함합니다.

액세스 함수:

QRegion childrenRegion() const

childrenRect(), geometry() 및 mask()도 참조하십시오 .

contextMenuPolicy : Qt::ContextMenuPolicy

위젯이 컨텍스트 메뉴를 표시하는 방법

이 속성의 기본값은 ` Qt::DefaultContextMenu`이며, 이는 ` contextMenuEvent()` 핸들러가 호출됨을 의미합니다. 다른 값으로는 ` Qt::NoContextMenu`, ` Qt::PreventContextMenu`, ` Qt::ActionsContextMenu`, ` Qt::CustomContextMenu`이 있습니다. ` Qt::CustomContextMenu`을 설정하면 ` customContextMenuRequested()` 신호가 발생합니다.

액세스 함수:

Qt::ContextMenuPolicy contextMenuPolicy() const
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)

contextMenuEvent(), customContextMenuRequested(), actions()도 참조하십시오 .

cursor : QCursor

이 속성은 이 위젯의 커서 모양을 지정합니다.

마우스 커서가 이 위젯 위에 위치하면 이 모양을 띱니다. 유용한 모양들을 확인하려면 list of predefined cursor objects 를 참조하십시오.

에디터 위젯은 I-빔 커서를 사용할 수 있습니다:

setCursor(Qt::IBeamCursor);

커서가 설정되지 않았거나 unsetCursor()가 호출된 후에는 부모 위젯의 커서가 사용됩니다.

기본적으로 이 속성은 Qt::ArrowCursor 모양의 커서를 포함합니다.

일부 기본 창 구현에서는 마우스가 고정된 상태라도 커서가 위젯을 벗어나면 커서를 초기화합니다. 창 밖에서도 모든 위젯에 커서를 설정하려면 QGuiApplication::setOverrideCursor()를 고려해 보십시오.

액세스 함수:

QCursor cursor() const
void setCursor(const QCursor &)
void unsetCursor()

QGuiApplication::setOverrideCursor()도 참조하십시오 .

enabled : bool

이 속성은 위젯이 활성화되었는지 여부를 나타냅니다.

일반적으로 활성화된 위젯은 키보드 및 마우스 이벤트를 처리하지만, 비활성화된 위젯은 그렇지 않습니다. 단, ` QAbstractButton`의 경우는 예외입니다.

일부 위젯은 비활성화되었을 때 다른 방식으로 표시됩니다. 예를 들어, 버튼의 레이블이 회색으로 표시될 수 있습니다. 위젯이 언제 활성화되거나 비활성화되는지 파악해야 하는 경우, type QEvent::EnabledChange 을 지정하여 changeEvent()을 사용할 수 있습니다.

위젯을 비활성화하면 해당 위젯의 모든 자식 위젯이 암시적으로 비활성화됩니다. 마찬가지로, 활성화하면 명시적으로 비활성화되지 않은 한 모든 자식 위젯이 활성화됩니다. 부모 위젯이 비활성화된 상태에서는 창이 아닌 자식 위젯을 명시적으로 활성화할 수 없습니다.

기본적으로 이 속성의 값은 ` true`입니다.

액세스 함수:

bool isEnabled() const
void setEnabled(bool)

isEnabledTo(), QKeyEvent, QMouseEvent 및 changeEvent()도 참조하십시오 .

[read-only] focus : bool

이 속성은 이 위젯(또는 해당 포커스 프록시)이 키보드 입력 포커스를 가지고 있는지 여부를 나타냅니다.

기본적으로 이 속성의 값은 false 입니다.

참고: 위젯에 대해 이 속성의 값을가져오는 것은 사실상 ` QApplication::focusWidget()`가 해당 위젯을 가리키는지 확인하는 것과 동일합니다.

액세스 함수:

bool hasFocus() const

setFocus(), clearFocus(), setFocusPolicy(), QApplication::focusWidget()도 참조하십시오 .

focusPolicy : Qt::FocusPolicy

이 속성은 위젯이 키보드 포커스를 받는 방식을 나타냅니다.

위젯이 탭 키를 통해 키보드 포커스를 받는 경우 정책은 ` Qt::TabFocus `이며, 클릭을 통해 포커스를 받는 경우 ` Qt::ClickFocus `, 두 가지 방법 모두를 지원하는 경우 ` Qt::StrongFocus `, 포커스를 전혀 받지 않는 경우 ` Qt::NoFocus `(기본값)입니다.

위젯이 키보드 이벤트를 처리하는 경우 키보드 포커스를 활성화해야 합니다. 이는 일반적으로 위젯의 생성자에서 수행됩니다. 예를 들어, ` QLineEdit ` 생성자는 `setFocusPolicy(Qt::StrongFocus)`를 호출합니다.

위젯에 포커스 프록시가 있는 경우, 포커스 정책이 해당 프록시로 전파됩니다.

액세스 함수:

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

focusInEvent(), focusOutEvent(), keyPressEvent(), keyReleaseEvent() 및 enabled도 참조하십시오 .

font : QFont

이 속성은 위젯에 현재 설정된 글꼴을 저장합니다.

이 속성은 위젯이 요청한 글꼴을 설명합니다. 이 글꼴은 표준 컴포넌트를 렌더링할 때 위젯의 스타일에 사용되며, 사용자 정의 위젯이 네이티브 플랫폼의 룩앤필과 일관성을 유지할 수 있도록 하는 수단으로 활용됩니다. 서로 다른 플랫폼이나 서로 다른 스타일에서 애플리케이션에 대해 서로 다른 글꼴을 정의하는 경우가 흔합니다.

위젯에 새로운 글꼴을 할당하면, 이 글꼴의 속성이 위젯의 기본 글꼴과 결합되어 위젯의 최종 글꼴이 형성됩니다. ` fontInfo()`를 호출하여 위젯의 최종 글꼴 사본을 가져올 수 있습니다. 최종 글꼴은 ` QPainter`의 글꼴을 초기화하는 데에도 사용됩니다.

기본값은 시스템 환경에 따라 달라집니다. ` QApplication `는 모든 위젯의 기본값으로 사용되는 시스템/테마 글꼴을 관리합니다. 특정 유형의 위젯에 대해서는 특별한 기본 글꼴이 설정되어 있을 수도 있습니다. 또한 ` QApplication::setFont()`에 사용자 정의 글꼴과 위젯 이름을 전달하여 위젯의 기본 글꼴을 직접 정의할 수도 있습니다. 마지막으로, 해당 글꼴은 Qt의 글꼴 데이터베이스와 대조되어 가장 적합한 글꼴이 검색됩니다.

QWidget 명시적인 글꼴 속성은 부모에서 자식으로 전파됩니다. 글꼴의 특정 속성을 변경하고 해당 글꼴을 위젯에 할당하면, 해당 속성이 위젯의 모든 자식 요소로 전파되어 해당 속성에 대한 시스템 기본값을 재정의합니다. Qt::WA_WindowPropagation 속성이 활성화되지 않은 한, 글꼴은 기본적으로 창( isWindow())으로 전파되지 않는다는 점에 유의하십시오.

QWidget의 글꼴 전파는 팔레트 전파와 유사합니다.

모든 표준 Qt Widgets의 콘텐츠를 렌더링하는 데 사용되는 현재 스타일은 Widgets 글꼴을 사용할지, 또는 경우에 따라 이를 (부분적으로 또는 완전히) 무시할지 자유롭게 선택할 수 있습니다. 특히 GTK 스타일, Mac 스타일, Windows Vista 스타일과 같은 특정 스타일은 플랫폼의 기본 룩앤필에 맞추기 위해 위젯 글꼴에 특별한 수정을 적용합니다. 이 때문에 위젯의 글꼴에 속성을 할당한다고 해서 위젯의 모양이 반드시 변경되는 것은 아닙니다. 대신 스타일시트를 적용할 수 있습니다.

참고: setFont()와 동일한 위젯에 Qt 스타일시트가 사용되는경우 , 설정이 충돌하면 스타일시트가 우선 적용됩니다.

액세스 함수:

const QFont &font() const
void setFont(const QFont &)

fontInfo() 및 fontMetrics()도 참조하십시오 .

[read-only] frameGeometry : QRect

부모 요소(창 테두리 포함)를 기준으로 한 위젯의 기하학적 구조

창의 기하학적 구조와 관련된 문제에 대한 개요는 ‘창 기하학적 구조( Window Geometry )’ 문서를 참조하십시오.

기본적으로 이 속성은 사용자의 플랫폼 및 화면 기하 구조에 따라 달라지는 값을 포함합니다.

액세스 함수:

QRect frameGeometry() const

geometry(), x(), y(), pos()도 참조하십시오 .

[read-only] frameSize : QSize

이 속성은 창 테두리를 포함한 위젯의 크기를 나타냅니다.

기본적으로 이 속성은 사용자의 플랫폼 및 화면 구성에 따라 달라지는 값을 포함합니다.

액세스 함수:

QSize frameSize() const

[read-only] fullScreen : bool

이 속성은 위젯이 전체 화면 모드로 표시되는지 여부를 나타냅니다.

전체 화면 모드의 위젯은 화면 전체를 차지하며, 제목 표시줄과 같은 창 장식 요소가 표시되지 않습니다.

기본적으로 이 속성의 값은 false 입니다.

액세스 함수:

bool isFullScreen() const

windowState(), minimized 및 maximized도 참조하십시오 .

geometry : QRect

이 속성은 창 테두리를 제외하고 부모 위젯을 기준으로 한 위젯의 기하학적 정보를 나타냅니다.

위젯이 최상위 위젯(창)인 경우, 그 기하학적 크기는 전역 화면 좌표로 지정됩니다.

지오메트리를 변경할 때, 위젯이 표시 중이라면 즉시 이동 이벤트(moveEvent()) 및/또는 크기 조정 이벤트(resizeEvent())를 수신합니다. 위젯이 현재 표시되지 않은 경우, 표시되기 전에 적절한 이벤트를 수신하게 됩니다.

크기 구성 요소는 minimumSize() 및 maximumSize()에 의해 정의된 범위를 벗어날 경우 조정됩니다.

경고: resizeEvent() 또는 moveEvent() 내부에서 setGeometry()를 호출하면 무한 재귀가 발생할 수 있습니다.

창의 기하학적 문제 전반에 대한 개요는 Window Geometry 문서를 참조하십시오.

기본적으로 이 속성은 사용자의 플랫폼 및 화면 기하 구조에 따라 달라지는 값을 포함합니다.

액세스 함수:

const QRect &geometry() const
void setGeometry(int x, int y, int w, int h)
void setGeometry(const QRect &)

frameGeometry(), rect(), move(), resize(), moveEvent(), resizeEvent(), minimumSize() 및 maximumSize()도 참조하십시오 .

[read-only] height : int

이 속성은 창 테두리를 제외한 위젯의 높이를 나타냅니다.

창의 기하학적 구조와 관련된 문제에 대한 개요는 ‘창 기하학적 구조( Window Geometry )’ 문서를 참조하십시오.

기본적으로 이 속성의 값은 사용자의 플랫폼과 ` screen geometry`에 따라 달라집니다.

액세스 함수:

int height() const

geometry, width 및 size도 참조하십시오 .

inputMethodHints : Qt::InputMethodHints

위젯에 어떤 입력 방식별 힌트가 있는지 나타냅니다.

이는 입력 위젯에만 해당됩니다. 입력 방식은 이 정보를 사용하여 작동 방식에 대한 힌트를 가져옵니다. 예를 들어, Qt::ImhFormattedNumbersOnly 플래그가 설정된 경우, 입력 방식은 숫자만 입력할 수 있음을 반영하도록 시각적 구성 요소를 변경할 수 있습니다.

경고: 일부 위젯은 의도된 대로 작동하기 위해 특정 플래그가 필요합니다. 플래그를 설정하려면 w->setInputMethodHints(f) 대신 w->setInputMethodHints(w->inputMethodHints()|f) 를 사용하십시오.

참고: 플래그는 단지 힌트일 뿐이므로, 특정 입력 방법 구현체는 이를 무시할 수 있습니다. 특정 유형의 문자가 입력되도록 확실히 하려면 위젯에 QValidator 도 함께 설정해야 합니다.

기본값은 Qt::ImhNone 입니다.

액세스 함수:

Qt::InputMethodHints inputMethodHints() const
void setInputMethodHints(Qt::InputMethodHints hints)

inputMethodQuery()도 참조하십시오 .

[read-only] isActiveWindow : bool

이 속성은 이 위젯의 창이 활성 창인지 여부를 나타냅니다.

활성 창이란 키보드 포커스를 가진 위젯을 포함하고 있는 창을 말합니다(위젯이 없거나 포함된 위젯 중 키보드 포커스를 받을 수 있는 것이 없는 경우에도 해당 창은 여전히 포커스를 가질 수 있습니다).

팝업 창이 표시되어 있는 경우, 이 속성은 활성 창과 팝업 창 모두에 대해 ` true `입니다.

기본적으로 이 속성의 값은 ` false`입니다.

액세스 함수:

bool isActiveWindow() const

activateWindow() 및 QApplication::activeWindow()도 참조하십시오 .

layoutDirection : Qt::LayoutDirection

이 속성은 해당 위젯의 레이아웃 방향을 지정합니다.

참고: Qt 4.7부터는이 메서드가 텍스트 레이아웃 방향에 더 이상 영향을 미치지 않습니다.

기본적으로 이 속성은 ' Qt::LeftToRight'로 설정되어 있습니다.

위젯에 레이아웃 방향이 설정되면, 이 설정은 위젯의 자식 위젯으로 전파되지만, 창인 자식 위젯이나 setLayoutDirection()이 명시적으로 호출된 자식 위젯에는 전파되지 않습니다. 또한, 부모에 대해 setLayoutDirection()이 호출된 후에 추가된 자식 위젯은 부모의 레이아웃 방향을 상속받지 않습니다.

액세스 함수:

Qt::LayoutDirection layoutDirection() const
void setLayoutDirection(Qt::LayoutDirection direction)
void unsetLayoutDirection()

QApplication::layoutDirection도 참조하십시오 .

locale : QLocale

이 속성은 위젯의 로케일을 저장합니다.

특별한 로케일이 설정되지 않은 한, 이 속성은 상위 위젯의 로케일이나 (이 위젯이 최상위 위젯인 경우) 기본 로케일 중 하나를 가집니다.

위젯이 날짜나 숫자를 표시하는 경우, 해당 값은 위젯의 로케일을 사용하여 서식이 지정되어야 합니다.

액세스 함수:

QLocale locale() const
void setLocale(const QLocale &locale)
void unsetLocale()

QLocale 및 QLocale::setDefault()도 참조하십시오 .

[read-only] maximized : bool

이 속성은 해당 위젯이 최대화되어 있는지 여부를 나타냅니다.

이 속성은 창에만 적용됩니다.

참고: 일부 윈도우 시스템의 제한 사항으로인해 , 이 속성이 항상 예상된 결과를 반환하는 것은 아닙니다(예: X11 환경에서 사용자가 윈도우 매니저를 통해 창을 최대화할 경우, Qt는 이를 다른 크기 조정과 구별할 방법이 없습니다). 이는 윈도우 매니저 프로토콜이 발전함에 따라 개선될 것으로 예상됩니다.

기본적으로 이 속성의 값은 ` false`입니다.

액세스 함수:

bool isMaximized() const

windowState(), showMaximized(), visible, show(), hide(), showNormal(), minimized도 참조하십시오 .

maximumHeight : int

이 속성은 위젯의 최대 높이를 픽셀 단위로 저장합니다.

이 속성은 ` maximumSize ` 속성이 가지는 높이와 일치합니다.

기본적으로 이 속성의 값은 16777215입니다.

참고: QWIDGETSIZE_MAX 매크로의정의에 따라 위젯의 최대 크기가 제한됩니다.

액세스 함수:

int maximumHeight() const
void setMaximumHeight(int maxh)

maximumSize 및 maximumWidth도 참조하십시오 .

maximumSize : QSize

이 속성은 위젯의 최대 크기를 픽셀 단위로 저장합니다.

위젯은 최대 크기를 초과하는 크기로 조정할 수 없습니다.

기본적으로 이 속성에는 너비와 높이가 모두 16777215인 크기가 설정되어 있습니다.

참고: ` QWIDGETSIZE_MAX ` 매크로의정의에 따라 위젯의 최대 크기가 제한됩니다.

액세스 함수:

QSize maximumSize() const
void setMaximumSize(const QSize &)
void setMaximumSize(int maxw, int maxh)

maximumWidth, maximumHeight, minimumSize 및 sizeIncrement도 참조하십시오 .

maximumWidth : int

이 속성은 위젯의 최대 너비를 픽셀 단위로 저장합니다.

이 속성은 ` maximumSize ` 속성이 가지는 너비와 일치합니다.

기본적으로 이 속성의 값은 16777215입니다.

참고: QWIDGETSIZE_MAX 매크로의정의에 따라 위젯의 최대 크기가 제한됩니다.

액세스 함수:

int maximumWidth() const
void setMaximumWidth(int maxw)

maximumSize 및 maximumHeight도 참조하십시오 .

[read-only] minimized : bool

이 속성은 해당 위젯이 최소화(아이콘화)되었는지 여부를 나타냅니다.

이 속성은 창에만 적용됩니다.

기본적으로 이 속성의 값은 ` false`입니다.

액세스 함수:

bool isMinimized() const

showMinimized(), visible, show(), hide(), showNormal(), maximized도 참조하십시오 .

minimumHeight : int

이 속성은 위젯의 최소 높이를 픽셀 단위로 저장합니다.

이 속성은 ` minimumSize ` 속성이 지정하는 높이와 일치합니다.

기본적으로 이 속성의 값은 0입니다.

액세스 함수:

int minimumHeight() const
void setMinimumHeight(int minh)

minimumSize 및 minimumWidth도 참조하십시오 .

minimumSize : QSize

이 속성은 위젯의 최소 크기를 지정합니다.

위젯은 최소 위젯 크기보다 더 작은 크기로 조정될 수 없습니다. 현재 크기가 최소 크기보다 작을 경우, 위젯의 크기는 최소 크기로 강제 조정됩니다.

이 함수로 설정된 최소 크기는 ` QLayout`에서 정의된 최소 크기를 재정의합니다. 최소 크기를 해제하려면 ` QSize(0, 0)` 값을 사용하십시오.

기본적으로 이 속성은 너비와 높이가 0인 크기를 포함합니다.

액세스 함수:

QSize minimumSize() const
void setMinimumSize(const QSize &)
void setMinimumSize(int minw, int minh)

관련 항목: minimumWidth, minimumHeight, maximumSize, sizeIncrement.

[read-only] minimumSizeHint : QSize

이 속성은 위젯에 권장되는 최소 크기를 지정합니다.

이 속성의 값이 유효하지 않은 크기인 경우, 권장되는 최소 크기는 없습니다.

minimumSizeHint()의 기본 구현은 이 위젯에 대한 레이아웃이 없는 경우 유효하지 않은 크기를 반환하고, 그렇지 않은 경우에는 레이아웃의 최소 크기를 반환합니다. 대부분의 내장 위젯은 minimumSizeHint()를 재구현합니다.

QLayout minimumSize()이 설정되어 있거나 크기 정책이 QSizePolicy::Ignore로 설정되어 있지 않는 한, 위젯의 크기가 최소 크기 힌트보다 작게 조정되는 일은 절대 없습니다. ()이 설정되어 있으면 최소 크기 힌트는 무시됩니다. minimumSize

액세스 함수:

virtual QSize minimumSizeHint() const

QSize::isValid(), resize(), setMinimumSize(), sizePolicy()도 참조하십시오 .

minimumWidth : int

이 속성은 위젯의 최소 너비를 픽셀 단위로 저장합니다.

이 속성은 ` minimumSize ` 속성이 가진 너비와 일치합니다.

기본적으로 이 속성의 값은 0입니다.

액세스 함수:

int minimumWidth() const
void setMinimumWidth(int minw)

minimumSize 및 minimumHeight도 참조하십시오 .

이 속성은 위젯이 모달 위젯인지 여부를 나타냅니다.

이 속성은 창(window)에 대해서만 의미가 있습니다. 모달 위젯은 다른 모든 창의 위젯이 입력을 받을 수 없도록 차단합니다.

기본적으로 이 속성의 값은 ` false`입니다.

액세스 함수:

bool isModal() const

isWindow(), windowModality 및 QDialog도 참조하십시오 .

mouseTracking : bool

이 속성은 위젯에 대해 마우스 추적 기능이 활성화되어 있는지 여부를 나타냅니다.

마우스 추적 기능이 비활성화된 경우(기본값), 위젯은 마우스를 이동하는 동안 적어도 하나의 마우스 버튼이 눌려 있을 때만 마우스 이동 이벤트를 수신합니다.

마우스 추적 기능이 활성화된 경우, 버튼이 눌려 있지 않아도 위젯은 마우스 이동 이벤트를 수신합니다.

액세스 함수:

bool hasMouseTracking() const
void setMouseTracking(bool enable)

mouseMoveEvent()도 참조하십시오 .

[read-only] normalGeometry : QRect

이 속성은 위젯이 일반(최대화되거나 전체 화면 모드가 아닌) 최상위 위젯으로 표시될 때 나타나는 기하학적 구조를 저장합니다.

위젯이 이미 이 상태인 경우, 일반 지오메트리는 위젯의 현재 ` geometry()` 값을 반영합니다.

자식 위젯의 경우, 이 속성은 항상 빈 사각형을 포함합니다.

기본적으로 이 속성은 빈 사각형을 포함합니다.

액세스 함수:

QRect normalGeometry() const

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

palette : QPalette

이 속성은 위젯의 팔레트를 포함합니다.

이 속성은 위젯의 팔레트를 정의합니다. 이 팔레트는 표준 컴포넌트를 렌더링할 때 위젯의 스타일에 사용되며, 사용자 정의 위젯이 네이티브 플랫폼의 룩앤필과 일관성을 유지할 수 있도록 하는 수단으로 활용됩니다. 일반적으로 플랫폼이나 스타일에 따라 팔레트가 다를 수 있습니다.

위젯에 새로운 팔레트를 할당하면, 이 팔레트의 색상 역할이 위젯의 기본 팔레트와 결합되어 위젯의 최종 팔레트가 형성됩니다. 위젯의 배경 역할에 해당하는 팔레트 항목은 위젯의 배경을 채우는 데 사용되며( QWidget::autoFillBackground 참조), 전경 역할은 QPainter 의 펜을 초기화하는 데 사용됩니다.

기본값은 시스템 환경에 따라 달라집니다. QApplication 는 모든 위젯의 기본값으로 사용되는 시스템/테마 팔레트를 관리합니다. 또한 특정 유형의 위젯에 대해 특별한 기본 팔레트가 있을 수도 있습니다(예: Windows Vista에서 QMenuBar 를 상속하는 모든 클래스는 특별한 기본 팔레트를 가집니다). 또한 사용자 정의 팔레트와 위젯 이름을 ` QApplication::setPalette()`에 전달하여 위젯에 대한 기본 팔레트를 직접 정의할 수도 있습니다. 마지막으로, 스타일은 팔레트가 할당될 때 이를 다듬을 수 있는 옵션을 항상 가지고 있습니다(` QStyle::polish()` 참조).

QWidget 명시적인 팔레트 역할을 부모에서 자식으로 전파합니다. 팔레트의 특정 역할에 브러시나 색상을 할당하고 해당 팔레트를 위젯에 할당하면, 그 역할이 위젯의 모든 자식 요소로 전파되어 해당 역할에 대한 시스템 기본값을 덮어씁니다. Qt::WA_WindowPropagation 속성이 활성화되지 않은 한, 팔레트는 기본적으로 창으로 전파되지 않는다는 점에 유의하십시오( isWindow() 참조).

QWidget의 팔레트 전파는 글꼴 전파와 유사합니다.

모든 표준 Qt Widgets의 콘텐츠를 렌더링하는 데 사용되는 현재 스타일은 Widgets 팔레트에서 색상과 브러시를 자유롭게 선택하거나, 경우에 따라 팔레트를 (부분적으로 또는 완전히) 무시할 수도 있습니다. 특히 GTK 스타일, Mac 스타일, Windows Vista 스타일과 같은 특정 스타일은 위젯의 내용을 렌더링하기 위해 타사 API에 의존하며, 이러한 스타일은 일반적으로 팔레트를 따르지 않습니다. 이 때문에 위젯의 팔레트에 역할을 할당한다고 해서 위젯의 모양이 반드시 변경되는 것은 아닙니다. 대신 스타일시트(styleSheet)를 적용할 수 있습니다.

경고: 이 함수를 Qt 스타일 시트와 함께사용하지 마십시오 . 스타일 시트를 사용할 경우, "color", "background-color", "selection-color", "selection-background-color" 및 "alternate-background-color"를 사용하여 위젯의 팔레트를 사용자 정의할 수 있습니다.

액세스 함수:

const QPalette &palette() const
void setPalette(const QPalette &)

QGuiApplication::palette(), QWidget::font() 및 Qt 스타일 시트도 참조하십시오 .

pos : QPoint

이 속성은 위젯이 상위 위젯 내에서 차지하는 위치를 나타냅니다.

위젯이 창인 경우, 위치는 테두리를 포함하여 데스크톱 상의 위젯 위치를 의미합니다.

위치를 변경할 때, 위젯이 표시되어 있으면 즉시 이동 이벤트(moveEvent())를 수신합니다. 위젯이 현재 표시되어 있지 않은 경우, 표시되기 전에 이벤트를 수신하게 됩니다.

기본적으로 이 속성은 원점을 참조하는 위치를 포함합니다.

경고: ` moveEvent()` 내부에서 `move()` 또는 ` setGeometry()`를 호출하면 무한 재귀가 발생할 수 있습니다.

창의 기하학적 구조에 관한 개요는 창 기하학적 구조 문서를 참조하십시오.

참고: 모든 윈도우 시스템이 최상위 윈도우 위치의 설정이나 조회를 지원하는것은 아닙니다 . 이러한 시스템에서는 프로그래밍 방식으로 윈도우를 이동해도 아무런 효과가 없을 수 있으며, 현재 위치에 대해 QPoint(0, 0) 와 같은 인위적인 값이 반환될 수 있습니다.

관련 함수:

QPoint pos() const
void move(int x, int y)
void move(const QPoint &)

frameGeometry, size, x() 및 y()도 참조하십시오 .

[read-only] rect : QRect

이 속성은 창 테두리를 제외한 위젯의 내부 형상을 나타냅니다.

rect 속성은 QRect(0, 0, width(), height())과 같습니다.

창과 관련된 기하학적 문제에 대한 개요는 ‘창 기하학(Window Geometry )’ 문서를 참조하십시오.

기본적으로 이 속성은 사용자의 플랫폼 및 화면 기하 구조에 따라 달라지는 값을 포함합니다.

액세스 함수:

QRect rect() const

size도 참조하십시오 .

size : QSize

이 속성은 창 테두리를 제외한 위젯의 크기를 나타냅니다.

위젯의 크기가 조정될 때 위젯이 표시되어 있다면, 즉시 크기 조정 이벤트(resizeEvent())를 수신합니다. 위젯이 현재 표시되어 있지 않은 경우, 위젯이 표시되기 전에 이벤트를 수신하게 됩니다.

크기가 minimumSize() 및 maximumSize()로 정의된 범위 외부에 있는 경우 크기가 조정됩니다.

기본적으로 이 속성의 값은 사용자의 플랫폼 및 화면 기하 구조에 따라 달라집니다.

경고: resizeEvent() 내부에서 resize() 또는 setGeometry()를 호출하면 무한 재귀가 발생할 수 있습니다.

참고: 크기를 QSize(0, 0) 로설정하면 위젯이 화면에 표시되지 않습니다. 이는 창에도 적용됩니다.

액세스 함수:

QSize size() const
void resize(int w, int h)
void resize(const QSize &)

관련 항목: pos, geometry, minimumSize, maximumSize, resizeEvent(), adjustSize().

[read-only] sizeHint : QSize

이 속성은 위젯에 권장되는 크기를 지정합니다.

이 속성의 값이 유효하지 않은 크기인 경우, 권장 크기가 지정되지 않습니다.

sizeHint()의 기본 구현은 이 위젯에 대한 레이아웃이 없는 경우 유효하지 않은 크기를 반환하고, 그렇지 않은 경우에는 레이아웃의 선호 크기를 반환합니다.

액세스 함수:

virtual QSize sizeHint() const

QSize::isValid(), minimumSizeHint(), sizePolicy(), setMinimumSize(), updateGeometry()도 참조하십시오 .

sizeIncrement : QSize

이 속성은 위젯의 크기 증가량을 저장합니다.

사용자가 창 크기를 조정하면 크기는 sizeIncrement() 단위로 변경됩니다. 가로 방향으로는width() 픽셀, 세로 방향으로는 sizeIncrement.height() 픽셀 단위로 조정되며, 기준은 baseSize()입니다. 위젯의 권장 크기는 비음수 정수 i와 j에 대해 다음과 같습니다:

width = baseSize().width() + i * sizeIncrement().width();
height = baseSize().height() + j * sizeIncrement().height();

모든 위젯에 대해 크기 증가량을 설정할 수는 있지만, 이는 창에만 영향을 미친다는 점에 유의하십시오.

기본적으로 이 속성은 너비와 높이가 0인 크기를 포함합니다.

경고: 크기 증분은 Windows 환경에서는 효과가 없으며, X11에서는 창 관리자에 의해 무시될 수 있습니다.

액세스 함수:

QSize sizeIncrement() const
void setSizeIncrement(const QSize &)
void setSizeIncrement(int w, int h)

size, minimumSize 및 maximumSize도 참조하십시오 .

sizePolicy : QSizePolicy

이 속성은 위젯의 기본 레이아웃 동작을 지정합니다.

이 위젯의 자식 요소를 관리하는 레이아웃 정책( QLayout )이 있는 경우, 해당 레이아웃에서 지정한 크기 정책이 사용됩니다. 해당 레이아웃 정책( QLayout)이 없는 경우, 이 함수의 결과가 사용됩니다.

기본 정책은 Preferred/Preferred이며, 이는 위젯의 크기를 자유롭게 조정할 수 있지만 sizeHint()가 반환하는 크기를 우선적으로 사용함을 의미합니다. 버튼과 유사한 위젯은 가로로 늘어나지만 세로 길이는 고정되도록 크기 정책을 설정합니다. 이는 라인 에디트 컨트롤( QLineEdit, QSpinBox 또는 편집 가능한 QComboBox 등)과 기타 가로 방향 위젯( QProgressBar 등)에도 동일하게 적용됩니다. QToolButton 는 일반적으로 정사각형이므로 양방향으로 크기를 늘릴 수 있습니다. 서로 다른 방향을 지원하는 위젯(예: QSlider, QScrollBar 또는 QHeader)은 해당 방향으로만 크기가 확장되도록 지정합니다. 스크롤바를 제공할 수 있는 위젯(일반적으로 QScrollArea 의 서브클래스)은 추가 공간을 사용할 수 있으며, sizeHint()보다 적은 공간으로도 작동할 수 있음을 지정하는 경향이 있습니다.

액세스 함수:

QSizePolicy sizePolicy() const
void setSizePolicy(QSizePolicy)
void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)

sizeHint(), QLayout, QSizePolicy 및 updateGeometry()도 참조하십시오 .

statusTip : QString

이 속성은 위젯의 상태 툴팁을 저장합니다.

기본적으로 이 속성은 빈 문자열을 포함합니다.

액세스 함수:

QString statusTip() const
void setStatusTip(const QString &)

toolTip 및 whatsThis도 참조하십시오 .

styleSheet : QString

이 속성은 위젯의 스타일 시트를 포함합니다.

이 스타일 시트에는 Qt 스타일 시트 문서에 설명된 대로 위젯 스타일에 대한 사용자 정의 사항이 텍스트 형식으로 포함되어 있습니다.

위젯에 스타일 시트를 설정하면, 해당 위젯과 그 자식 위젯들은 현재 ` style`을 감싸는 스타일 시트 스타일을 사용하게 됩니다. 스타일 시트를 사용할 시점에 대해서는 ` Qt Widgets `의 ‘스타일 지정 방법’을 참조하십시오.

액세스 함수:

QString styleSheet() const
void setStyleSheet(const QString &styleSheet)

setStyle(), QApplication::styleSheet, Qt 스타일 시트 및 Qt Widgets 에 대한 스타일 지정 방법도 참조하십시오 .

tabletTracking : bool

이 속성은 위젯에 대해 태블릿 추적 기능이 활성화되어 있는지 여부를 나타냅니다.

태블릿 추적 기능이 비활성화된 경우(기본 설정), 위젯은 스타일러스가 태블릿에 닿아 있거나 스타일러스를 이동하는 동안 스타일러스 버튼 중 하나 이상이 눌려 있을 때에만 태블릿 이동 이벤트를 수신합니다.

태블릿 추적 기능이 활성화된 경우, 위젯은 스타일러스가 태블릿 근처에 머무르는 동안에도 태블릿 이동 이벤트를 수신합니다. 이는 위치뿐만 아니라 회전 및 기울기와 같은 보조 속성을 모니터링하고 UI에서 피드백을 제공하는 데 유용합니다.

액세스 함수:

bool hasTabletTracking() const
void setTabletTracking(bool enable)

tabletEvent()도 참조하십시오 .

toolTip : QString

이 속성은 위젯의 툴팁을 저장합니다.

기본적으로 툴팁은 활성 창의 자식 위젯에 대해서만 표시된다는 점에 유의하십시오. 이 동작을 변경하려면 툴팁이 있는 위젯이 아닌 창에 Qt::WA_AlwaysShowToolTips 속성을 설정하면 됩니다.

툴팁의 동작을 제어하려면 event() 함수를 가로채거나 QEvent::ToolTip 이벤트를 처리할 수 있습니다(예: 툴팁이 표시될 영역을 사용자 정의하려는 경우).

기본적으로 이 속성은 빈 문자열을 포함합니다.

액세스 함수:

QString toolTip() const
void setToolTip(const QString &)

QToolTip, statusTip 및 whatsThis도 참조하십시오 .

toolTipDuration : int

이 속성은 위젯의 툴팁 표시 시간을 지정합니다.

툴팁이 표시되는 시간을 밀리초 단위로 지정합니다. 값이 -1(기본값)인 경우, 툴팁의 길이에 따라 표시 시간이 계산됩니다.

액세스 함수:

int toolTipDuration() const
void setToolTipDuration(int msec)

toolTip도 참조하십시오 .

updatesEnabled : bool

이 속성은 업데이트가 활성화되었는지 여부와 관계없이 적용됩니다

업데이트가 활성화된 위젯은 페인트 이벤트를 수신하고 시스템 배경을 가지지만, 비활성화된 위젯은 그렇지 않습니다. 이는 또한 업데이트가 비활성화된 경우 ` update()` 및 ` repaint()`를 호출해도 아무런 효과가 없음을 의미합니다.

기본적으로 이 속성의 값은 ` true`입니다.

setUpdatesEnabled()는 일반적으로 짧은 시간 동안 업데이트를 비활성화하는 데 사용되며, 예를 들어 대규모 변경 시 화면 깜빡임을 방지하기 위한 용도로 사용됩니다. Qt Widgets에서는 위젯이 일반적으로 화면 깜빡임을 일으키지 않지만, X11 환경에서는 위젯이 다른 위젯으로 대체되기 전에 숨겨질 때 서버가 화면의 해당 영역을 지워버릴 수 있습니다. 업데이트를 비활성화하면 이 문제를 해결할 수 있습니다.

예시:

setUpdatesEnabled(false);
bigVisualChanges();
setUpdatesEnabled(true);

위젯을 비활성화하면 해당 위젯의 모든 자식 위젯이 암시적으로 비활성화됩니다. 위젯을 활성화하면 최상위 위젯이나 명시적으로 비활성화된 위젯을 제외한 모든 자식 위젯이 활성화됩니다. 업데이트를 다시 활성화하면 위젯에 대해 update()가 암시적으로 호출됩니다.

액세스 함수:

bool updatesEnabled() const
void setUpdatesEnabled(bool enable)

paintEvent()도 참조하십시오 .

visible : bool

이 속성은 위젯이 표시되는지 여부를 나타냅니다.

setVisible(true) 또는 show()를 호출하면, 창까지의 모든 상위 위젯이 표시된 상태인 경우 해당 위젯이 표시 상태로 설정됩니다. 조상 위젯 중 하나라도 표시되지 않은 상태라면, 해당 위젯은 모든 조상 위젯이 표시될 때까지 표시되지 않습니다. 크기와 위치가 변경된 경우, Qt는 위젯이 표시되기 직전에 이동 및 크기 조정 이벤트를 수신하도록 보장합니다. 위젯의 크기가 아직 조정되지 않은 경우, Qt는 ` adjustSize()`를 사용하여 위젯의 크기를 적절한 기본값으로 조정합니다.

setVisible(false) 또는 hide()를 호출하면 위젯이 명시적으로 숨겨집니다. 명시적으로 숨겨진 위젯은 사용자가 직접 표시하지 않는 한, 모든 상위 위젯이 표시되더라도 다시 표시되지 않습니다.

위젯은 가시성 상태가 변경될 때 show 및 hide 이벤트를 수신합니다. hide 이벤트와 show 이벤트 사이에는 사용자에게 정보를 준비하거나 표시하는 데 CPU 사이클을 낭비할 필요가 없습니다. 예를 들어, 비디오 애플리케이션은 단순히 새로운 프레임 생성을 중지할 수 있습니다.

화면상의 다른 창에 의해 가려진 위젯은 보이는 상태로 간주됩니다. 아이콘화된 창이나 다른 가상 데스크톱에 존재하는 창(이 개념을 지원하는 플랫폼에서)에도 동일한 원칙이 적용됩니다. 위젯은 윈도우 시스템에 의해 매핑 상태가 변경될 때 자발적인 표시 및 숨김 이벤트를 수신합니다. 예를 들어, 사용자가 창을 최소화하면 자발적인 숨김 이벤트가 발생하고, 창이 다시 복원되면 자발적인 표시 이벤트가 발생합니다.

setVisible() 함수를 재구현해야 하는 경우는 거의 없습니다. 위젯이 표시되기 전에 일부 설정을 변경해야 하는 경우, 대신 showEvent()을 사용하십시오. 지연 초기화가 필요한 경우, event() 함수에 전달되는 폴란드식 이벤트를 사용하십시오.

관련 함수:

bool isVisible() const
virtual void setVisible(bool visible)

show(), hide(), isHidden(), isVisibleTo(), isMinimized(), showEvent() 및 hideEvent()도 참조하십시오 .

whatsThis : QString

이 속성은 위젯의 ‘이건 뭐죠?’ 도움말 텍스트를 저장합니다.

기본적으로 이 속성에는 빈 문자열이 들어 있습니다.

액세스 함수:

QString whatsThis() const
void setWhatsThis(const QString &)

QWhatsThis, QWidget::toolTip 및 QWidget::statusTip도 참조하십시오 .

[read-only] width : int

이 속성은 창 테두리를 제외한 위젯의 너비를 나타냅니다.

창의 기하학적 구조와 관련된 문제에 대한 개요는 ‘창 기하학적 구조( Window Geometry )’ 문서를 참조하십시오.

참고: 멀티스크린 데스크톱에서 화면의 너비를 확인하는 데 이 함수를 사용하지마십시오 . 자세한 내용은 QScreen 을 참조하십시오.

기본적으로 이 속성은 사용자의 플랫폼 및 화면 기하 구조에 따라 달라지는 값을 포함합니다.

액세스 함수:

int width() const

geometry, height 및 size도 참조하십시오 .

windowFilePath : QString

이 속성은 위젯과 연관된 파일 경로를 저장합니다.

이 속성은 창에 대해서만 의미가 있습니다. 이 속성은 파일 경로를 창과 연관시킵니다. 파일 경로를 설정했으나 창 제목을 설정하지 않은 경우, Qt는 ` QFileInfo::fileName()`를 사용하여 얻은 지정된 경로의 파일 이름을 창 제목으로 설정합니다.

어떤 시점에서든 창 제목이 설정되어 있다면, 창 제목이 우선 적용되어 파일 경로 문자열 대신 표시됩니다.

또한 macOS에서는 파일 경로가 존재한다고 가정할 때, 이 속성을 설정하면 창의 프록시 아이콘이 설정된다는 추가적인 이점이 있습니다.

파일 경로가 설정되지 않은 경우, 이 속성은 빈 문자열을 포함합니다.

기본적으로 이 속성은 빈 문자열을 포함합니다.

액세스 함수:

QString windowFilePath() const
void setWindowFilePath(const QString &filePath)

windowTitle 및 windowIcon도 참조하십시오 .

windowFlags : Qt::WindowFlags

창 플래그는 유형(예: Qt::Dialog)과 창 시스템에 대한 하나 이상의 힌트(예: Qt::FramelessWindowHint)의 조합입니다.

위젯의 유형이 Qt::Widget 또는 Qt::SubWindow 이었다가 창(Qt::Window, Qt::Dialog 등)이 되면, 해당 위젯은 바탕화면의 (0, 0) 위치에 배치됩니다. 위젯이 창인 상태에서 Qt::Widget 또는 Qt::SubWindow 이 되면, 해당 위젯은 부모 위젯을 기준으로 (0, 0) 위치에 배치됩니다.

참고: 이 함수는 창의 플래그를 변경할 때 ` setParent()`를 호출하여 위젯이 숨겨지게 합니다. 위젯을 다시 표시하려면 ` show()`를 호출해야 합니다.

액세스 함수:

Qt::WindowFlags windowFlags() const
void setWindowFlags(Qt::WindowFlags type)

windowType(), setWindowFlag() 및 ‘창 플래그 예제’도 참조하십시오 .

windowIcon : QIcon

이 속성은 위젯의 아이콘을 저장합니다.

이 속성은 창에 대해서만 의미가 있습니다. 아이콘이 설정되지 않은 경우, windowIcon()은 애플리케이션 아이콘(QApplication::windowIcon())을 반환합니다.

참고: macOS에서 창 아이콘은 활성 문서를 나타내며, setWindowFilePath 를 사용하여 파일 경로가 함께 설정되지 않은 경우 표시되지 않습니다.

액세스 함수:

QIcon windowIcon() const
void setWindowIcon(const QIcon &icon)

Notifier 시그널:

void windowIconChanged(const QIcon &icon)

windowTitle 및 setWindowFilePath도 참조하십시오 .

windowModality : Qt::WindowModality

이 속성은 모달 위젯에 의해 차단되는 창을 지정합니다.

이 속성은 창에 대해서만 의미가 있습니다. 모달 위젯은 다른 창의 위젯이 입력을 받는 것을 차단합니다. 이 속성의 값은 위젯이 표시되어 있을 때 차단될 창을 제어합니다. 창이 표시되어 있는 상태에서 이 속성을 변경해도 아무런 효과가 없습니다. 먼저 위젯을 hide()로 숨긴 다음, 다시 show()로 표시해야 합니다.

기본적으로 이 속성의 값은 ` Qt::NonModal`입니다.

관련 함수:

Qt::WindowModality windowModality() const
void setWindowModality(Qt::WindowModality windowModality)

isWindow(), QWidget::modal 및 QDialog도 참조하십시오 .

windowModified : bool

이 속성은 창에 표시된 문서에 저장되지 않은 변경 사항이 있는지 여부를 나타냅니다.

수정된 창이란 내용이 변경되었지만 디스크에 저장되지 않은 창을 말합니다. 이 플래그의 효과는 플랫폼에 따라 다릅니다. macOS에서는 닫기 버튼의 모양이 변경되며, 다른 플랫폼에서는 창 제목에 '*' (별표)가 표시됩니다.

창 제목에는 '*'가 표시될 위치를 나타내는 "[*]" 자리 표시자가 포함되어야 합니다. 일반적으로 이 자리 표시자는 파일 이름 바로 뒤에 표시되어야 합니다(예: "document1.txt[*] - 텍스트 편집기"). 창이 수정된 상태가 아니면 이 자리 표시자는 단순히 제거됩니다.

위젯이 수정된 상태로 설정되면, 그 모든 상위 요소도 수정된 상태로 설정된다는 점에 유의하십시오. 그러나 위젯에서 ` setWindowModified(false) `를 호출하면, 부모 요소의 다른 자식 요소가 수정되었을 수 있으므로 이 변경 사항은 부모 요소로 전파되지 않습니다.

액세스 함수:

bool isWindowModified() const
void setWindowModified(bool)

windowTitle도 참조하십시오 .

windowOpacity : double

이 속성은 창의 불투명도 수준을 지정합니다.

불투명도의 유효한 범위는 1.0(완전히 불투명)부터 0.0(완전히 투명)까지입니다.

기본적으로 이 속성의 값은 1.0입니다.

이 기능은 Composite 확장을 지원하는 임베디드 리눅스, macOS, Windows 및 X11 플랫폼에서 사용할 수 있습니다.

참고: X11에서는 컴포지트 관리자가 실행 중이어야 하며, 사용 중인 윈도우 관리자가 X11 전용 _NET_WM_WINDOW_OPACITY 아톰을 지원해야 합니다.

경고: 이 속성을 불투명에서 투명으로변경하면 , 창이 올바르게 표시되기 전에 처리해야 하는 페인트 이벤트가 발생할 수 있습니다. 이는 주로 ` QScreen::grabWindow()`의 사용에 영향을 미칩니다. 또한 반투명 창은 불투명 창에 비해 업데이트 및 크기 조정이 훨씬 더 느리다는 점에 유의하십시오.

액세스 함수:

qreal windowOpacity() const
void setWindowOpacity(qreal level)

setMask()도 참조하십시오 .

windowTitle : QString

이 속성은 창 제목(캡션)을 저장합니다.

이 속성은 창이나 대화 상자와 같은 최상위 위젯에서만 의미가 있습니다. 캡션이 설정되지 않은 경우, 제목은 windowFilePath 을 기반으로 합니다. 이 둘 중 어느 것도 설정되지 않은 경우, 제목은 빈 문자열이 됩니다.

windowModified 메커니즘을 사용하는 경우, 창 제목에는 '*'가 표시되어야 할 위치를 나타내는 "[*]" 자리 표시자가 포함되어야 합니다. 일반적으로 이 자리 표시자는 파일 이름 바로 뒤에 표시되어야 합니다(예: "document1.txt[*] - 텍스트 편집기"). windowModified 속성이 false (기본값)인 경우, 자리 표시자는 단순히 제거됩니다.

일부 데스크톱 플랫폼(Windows 및 Unix 포함)에서는, 설정된 경우 응용 프로그램 이름( QGuiApplication::applicationDisplayName 에서 가져옴)이 창 제목의 끝에 추가됩니다. 이는 QPA 플러그인에 의해 수행되므로 사용자에게 표시되지만, windowTitle 문자열의 일부는 아닙니다.

액세스 함수:

QString windowTitle() const
void setWindowTitle(const QString &)

Notifier 신호:

void windowTitleChanged(const QString &title)

windowIcon, windowModified 및 windowFilePath도 참조하십시오 .

[read-only] x : int

이 속성은 창 테두리를 포함한 부모 요소에 대한 위젯의 x 좌표를 저장합니다.

창의 기하학적 구조와 관련된 문제에 대한 개요는 ‘창 기하학적 구조( Window Geometry )’ 문서를 참조하십시오.

기본적으로 이 속성의 값은 0입니다.

액세스 함수:

int x() const

frameGeometry, y 및 pos도 참조하십시오 .

[read-only] y : int

이 속성은 위젯의 y 좌표를 부모 요소에 상대적이며, 창 테두리를 포함하여 나타냅니다.

창의 기하학적 구조와 관련된 전반적인 내용은 ‘창 기하학적 구조( Window Geometry )’ 문서를 참조하십시오.

기본적으로 이 속성의 값은 0입니다.

액세스 함수:

int y() const

frameGeometry, x 및 pos도 참조하십시오 .

멤버 함수 문서

[explicit] QWidget::QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

parent 의 자식인 위젯을 생성하며, 위젯 플래그는 f 로 설정됩니다.

parent 가 nullptr 인 경우, 새 위젯은 창이 됩니다. parent 가 다른 위젯인 경우, 이 위젯은 parent 내부의 자식 창이 됩니다. 새 위젯은 해당 parent 가 삭제되면 함께 삭제됩니다.

위젯 플래그 인수( f)는 일반적으로 0이지만, 창 프레임을 사용자 정의하기 위해 설정할 수 있습니다(즉, parent 는 반드시 nullptr 여야 함). 프레임을 사용자 정의하려면 window flags 중 하나와 비트별 OR 연산을 통해 생성된 값을 사용하십시오.

이미 표시된 위젯에 자식 위젯을 추가하는 경우, 자식 위젯을 표시하려면 명시적으로 show를 호출해야 합니다.

X11 버전의 Qt는 모든 시스템에서 스타일 플래그의 모든 조합을 지원하지 못할 수도 있습니다. 이는 X11 환경에서 Qt가 윈도우 매니저에만 요청할 수 있으며, 윈도우 매니저가 애플리케이션의 설정을 재정의할 수 있기 때문입니다. Windows에서는 Qt가 원하는 플래그를 자유롭게 설정할 수 있습니다.

windowFlags도 참조하십시오 .

[virtual noexcept] QWidget::~QWidget()

위젯을 삭제합니다.

먼저 이 위젯의 모든 자식 요소가 삭제됩니다. 이 위젯이 메인 위젯인 경우, 애플리케이션이 종료됩니다.

[virtual protected] void QWidget::actionEvent(QActionEvent *event)

위젯의 동작이 변경될 때마다, 지정된 event 와 함께 이 이벤트 핸들러가 호출됩니다.

addAction(), insertAction(), removeAction(), actions() 및 QActionEvent도 참조하십시오 .

QList<QAction *> QWidget::actions() const

이 위젯의 액션 목록(비어 있을 수도 있음)을 반환합니다.

contextMenuPolicy, insertAction() 및 removeAction()도 참조하십시오 .

void QWidget::activateWindow()

이 위젯을 포함하는 최상위 위젯을 활성 창으로 설정합니다.

활성 창이란 키보드 입력 포커스를 가지고 있는, 화면에 표시된 최상위 창을 말합니다.

이 함수는 최상위 창의 제목 표시줄을 마우스로 클릭하는 것과 동일한 작업을 수행합니다. X11 환경에서는 결과에 따라 창 관리자에 따라 달라집니다. 창이 최상위에 배치되도록 하려면 raise()도 호출해야 합니다. 창이 표시되어 있어야 하며, 그렇지 않으면 activateWindow()는 아무런 효과도 없습니다.

Windows에서, 애플리케이션이 현재 활성 상태가 아닐 때 이 함수를 호출하면 해당 창을 활성 창으로 만들지는 않습니다. 대신, 창에 어떤 변화가 있었음을 나타내기 위해 작업 표시줄 항목의 색상을 변경합니다. 이는 Microsoft가 애플리케이션이 사용자가 다른 애플리케이션에서 현재 수행 중인 작업을 방해하는 것을 허용하지 않기 때문입니다.

isActiveWindow(), window() 및 show()도 참조하십시오 .

void QWidget::addAction(QAction *action)

action 액션을 이 위젯의 액션 목록에 추가합니다.

모든 QWidget에는 QAction목록이 있습니다. 그러나 이 목록은 그래픽적으로 다양한 방식으로 표현될 수 있습니다. QAction 목록( actions() 함수가 반환하는 값)의 기본 용도는 컨텍스트 QMenu 를 생성하는 것입니다.

QWidget 에는 각 액션이 하나씩만 포함되어야 하며, 이미 존재하는 액션을 추가하더라도 해당 액션이 위젯에 두 번 포함되지는 않습니다.

action 의 소유권은 이 QWidget 로 이전되지 않습니다.

removeAction(), insertAction(), actions() 및 QMenu도 참조하십시오 .

[since 6.3] QAction *QWidget::addAction(const QString &text)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text)

[since 6.3] QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut)

이 편의 함수들은 “ text ”라는 텍스트, “ icon ”라는 아이콘, 그리고 “ shortcut ”라는 바로가기(있는 경우)를 가진 새로운 액션을 생성합니다.

이 함수들은 새로 생성된 액션을 위젯의 액션 목록에 추가하고, 해당 액션을 반환합니다.

QWidget 반환된 QAction 의 소유권을 인수합니다.

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

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QString &text, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QIcon &icon, const QString &text, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, Args &&... args)

이 편의 함수들은 텍스트 text, 아이콘 icon, 그리고 단축키 shortcut(있는 경우)을 가진 새로운 액션을 생성합니다.

액션의 ` triggered()` 신호는 마치 ` QObject::connect(action, &QAction::triggered, args...)`를 호출한 것처럼 연결되며, ` Qt::ConnectionType`를 포함하여 ` args`를 완벽하게 전달합니다.

이 함수는 새로 생성된 액션을 위젯의 액션 목록에 추가하고 이를 반환합니다.

QWidget 반환된 QAction 의 소유권을 인수합니다.

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

[since 6.3] QAction *QWidget::addAction(const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

이 편의 함수는 텍스트 text, 아이콘 icon, 그리고 단축키 shortcut(있는 경우)를 가진 새로운 액션을 생성합니다.

이 액션의 triggered() 신호는 receiver 의 member 슬롯에 연결됩니다. 이 함수는 새로 생성된 액션을 위젯의 액션 목록에 추가한 후 이를 반환합니다.

QWidget 반환된 QAction 의 소유권을 인수합니다.

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

void QWidget::addActions(const QList<QAction *> &actions)

actions 작업을 이 위젯의 작업 목록에 추가합니다.

removeAction(), QMenu 및 addAction()도 참조하십시오 .

void QWidget::adjustSize()

위젯의 크기를 내용물에 맞게 조정합니다.

이 함수는 ` sizeHint()`가 유효한 경우(즉, 크기 힌트의 너비와 높이가 0 이상인 경우) 이를 사용합니다. 그렇지 않은 경우, 모든 자식 위젯을 포함하는 자식 사각형(모든 자식 위젯 사각형의 합집합)의 크기로 설정합니다.

창의 경우 화면 크기도 고려됩니다. ` sizeHint()`가 (200, 100)보다 작고 크기 정책이 ` expanding`인 경우, 창의 크기는 최소 (200, 100)이 됩니다. 창의 최대 크기는 화면 너비와 높이의 2/3입니다.

sizeHint() 및 childrenRect()도 참조하십시오 .

QPalette::ColorRole QWidget::backgroundRole() const

위젯의 배경 역할을 반환합니다.

배경 역할은 배경을 렌더링하는 데 사용되는 위젯의 ' palette ' 속성에 정의된 브러시를 지정합니다.

명시적인 배경 역할이 설정되지 않은 경우, 위젯은 상위 위젯의 배경 역할을 상속받습니다.

setBackgroundRole() 및 foregroundRole()도 참조하십시오 .

QBackingStore *QWidget::backingStore() const

이 위젯이 그려질 ` QBackingStore `을 반환합니다.

[virtual protected] void QWidget::changeEvent(QEvent *event)

이 이벤트 핸들러는 상태 변화를 처리하도록 재구현할 수 있습니다.

이 이벤트에서 변경되는 상태는 제공된 event 를 통해 가져올 수 있습니다.

변경 이벤트에는 다음이 포함됩니다: QEvent::ToolBarChange, QEvent::ActivationChange, QEvent::EnabledChange, QEvent::FontChange, QEvent::StyleChange, QEvent::PaletteChange, QEvent::WindowTitleChange, QEvent::IconTextChange, QEvent::ModifiedChange, QEvent::MouseTrackingChange, QEvent::ParentChange, QEvent::WindowStateChange, QEvent::LanguageChange, QEvent::LocaleChange, QEvent::LayoutDirectionChange, QEvent::ReadOnlyChange.

QWidget *QWidget::childAt(int x, int y) const

위젯의 좌표계에서 (x, y) 위치에 있는 표시된 자식 위젯을 반환합니다. 지정된 위치에 표시된 자식 위젯이 없는 경우, 이 함수는 nullptr 을 반환합니다.

QWidget *QWidget::childAt(const QPoint &p) const

위젯 자체의 좌표계에서 점 ( p )에 위치한 표시된 자식 위젯을 반환합니다.

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

[since 6.8] QWidget *QWidget::childAt(const QPointF &p) const

위젯 자체의 좌표계에서 점 p 에 위치한 표시된 자식 위젯을 반환합니다.

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

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

void QWidget::clearFocus()

위젯에서 키보드 입력 포커스를 제거합니다.

위젯이 활성 포커스를 가지고 있는 경우, 포커스를 잃었음을 알리기 위해 ` focus out event ` 이벤트가 이 위젯으로 전송됩니다.

이 위젯은 키보드 입력 포커스를 얻으려면 포커스 설정을 활성화해야 합니다. 즉, setFocusPolicy()를 호출해야 합니다.

hasFocus(), setFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy(), QApplication::focusWidget()도 참조하십시오 .

void QWidget::clearMask()

setMask() 함수로 설정된 모든 마스크를 제거합니다.

setMask()도 참조하십시오 .

[slot] bool QWidget::close()

이 위젯을 닫습니다. 위젯이 닫혀 있는 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.

먼저 위젯에 QCloseEvent 를 전송합니다. 위젯이 close 이벤트를 accepts 하면 위젯은 hidden 상태가 됩니다. 이벤트를 ignores 하면 아무 일도 일어나지 않습니다. QWidget::closeEvent()의 기본 구현은 close 이벤트를 수락합니다.

위젯에 Qt::WA_DeleteOnClose 플래그가 설정되어 있으면, 위젯도 삭제됩니다. 위젯이 표시되어 있든 아니든 상관없이 close 이벤트가 위젯에 전달됩니다.

QGuiApplication::lastWindowClosed() 신호는 Qt::WA_QuitOnClose 속성이 설정된 마지막 가시적인 기본 창(즉, 부모가 없는 창)이 닫힐 때 발생합니다. 기본적으로 이 속성은 스플래시 화면, 도구 창, 팝업 메뉴와 같은 일시적인 창을 제외한 모든 위젯에 설정되어 있습니다.

[virtual protected] void QWidget::closeEvent(QCloseEvent *event)

이 이벤트 핸들러는 Qt가 윈도우 시스템으로부터 최상위 위젯에 대한 창 닫기 요청을 수신할 때, 지정된 ` event `와 함께 호출됩니다.

기본적으로 이 이벤트는 수락되고 위젯이 닫힙니다. 이 함수를 재구현하여 위젯이 창 닫기 요청에 반응하는 방식을 변경할 수 있습니다. 예를 들어, 모든 이벤트에서 ` ignore()`를 호출하여 창이 닫히는 것을 방지할 수 있습니다.

메인 윈도우 애플리케이션은 일반적으로 이 함수를 재구현하여 사용자의 작업이 저장되었는지 확인하고, 닫기 전에 사용자의 동의를 구합니다.

event(), hide(), close() 및 QCloseEvent도 참조하십시오 .

QMargins QWidget::contentsMargins() const

contentsMargins 함수는 위젯의 콘텐츠 여백을 반환합니다.

setContentsMargins() 및 contentsRect()도 참조하십시오 .

QRect QWidget::contentsRect() const

위젯의 여백 안쪽 영역의 면적을 반환합니다.

setContentsMargins() 및 contentsMargins()도 참조하십시오 .

[virtual protected] void QWidget::contextMenuEvent(QContextMenuEvent *event)

event 이벤트에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 위젯 컨텍스트 메뉴 이벤트를 수신할 수 있습니다.

이 핸들러는 위젯의 ` contextMenuPolicy `가 ` Qt::DefaultContextMenu`일 때 호출됩니다.

기본 구현은 컨텍스트 이벤트를 무시합니다. 자세한 내용은 QContextMenuEvent 문서를 참조하십시오.

event(), QContextMenuEvent 및 customContextMenuRequested()도 참조하십시오 .

[protected] void QWidget::create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)

새로운 위젯 창을 생성합니다.

Qt 5에서는 ` window`, ` initializeWindow`, ` destroyOldWindow ` 매개변수가 무시됩니다. 대신 외부 창을 감싸는 ` QWindow `를 생성하려면 ` QWindow::fromWinId()`를 사용하고, 이를 ` QWidget::createWindowContainer()`에 전달하십시오.

createWindowContainer() 및 QWindow::fromWinId()도 참조하십시오 .

[static] QWidget *QWidget::createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

window 를 QWidget 기반 애플리케이션에 임베드할 수 있도록 하는 QWidget 를 생성합니다.

이 창 컨테이너는 parent 의 자식 요소로 생성되며, 창 플래그로 flags 가 지정됩니다.

창이 컨테이너에 내장되면, 컨테이너가 창의 기하학적 속성과 가시성을 제어합니다. 내장된 창에 대해 QWindow::setGeometry(), QWindow::show() 또는 QWindow::hide()을 명시적으로 호출하는 것은 권장되지 않습니다.

컨테이너는 window 의 소유권을 인수합니다. QWindow::setParent()를 호출하여 창 컨테이너에서 창을 제거할 수 있습니다.

창 컨테이너는 자식인 최상위 창에 네이티브 자식 창으로 연결됩니다. 창 컨테이너가 QAbstractScrollArea 또는 QMdiArea 의 자식으로 사용될 경우, 이 사용 사례에서 적절한 스태킹 및 클리핑이 이루어지도록 부모 체인에 있는 모든 위젯에 대해 native window 를 생성합니다. 윈도우 컨테이너에 대한 네이티브 윈도우를 생성하면 적절한 스태킹 및 클리핑이 가능해집니다. 이는 윈도우 컨테이너를 표시하기 전에 수행해야 합니다. 네이티브 자식 윈도우가 많은 애플리케이션에서는 성능 문제가 발생할 수 있습니다.

윈도우 컨테이너에는 다음과 같은 몇 가지 알려진 제한 사항이 있습니다:

  • 겹침 순서: 내장된 창은 불투명한 상자로 위젯 계층 구조의 최상단에 겹쳐집니다. 여러 개의 겹치는 창 컨테이너 인스턴스 간의 겹침 순서는 정의되지 않습니다.
  • 렌더링 통합: 윈도우 컨테이너는 ` QGraphicsProxyWidget`, ` QWidget::render()` 또는 이와 유사한 기능과 상호 운용되지 않습니다.
  • 포커스 처리: 윈도우 컨테이너 인스턴스에 임의의 포커스 정책을 적용할 수 있으며, 이 인스턴스는 ` QWindow::requestActivate()` 호출을 통해 포커스를 윈도우로 위임합니다. 그러나 ` QWindow ` 인스턴스에서 일반 포커스 체인으로의 복귀 여부는 ` QWindow ` 인스턴스 구현 자체에 달려 있습니다. 또한, ` QWindow::requestActivate()`가 실제로 윈도우에 포커스를 부여하는지는 플랫폼에 따라 다릅니다.

    Qt Quick 기반 창을 임베드하는 경우, Qt는 탭 키를 누를 때 임베드된 QML 창으로 포커스가 이동하거나 창에서 벗어나도록 자동으로 보장하여, 창 컨테이너 체인 내의 다음 또는 이전 포커스 가능한 객체로 포커스가 이동할 수 있게 합니다.

  • QWidget 기반 애플리케이션에서 많은 창 컨테이너 인스턴스를 사용하면 애플리케이션의 전반적인 성능이 크게 저하될 수 있습니다.

참고: window 가 위젯에 속하는경우 (즉, windowHandle() 호출을 통해 window 를 수신한 경우), 컨테이너는 생성되지 않습니다. 대신, 이 함수는 parent 로 부모를 재설정한 후 위젯 자체를 반환합니다. 컨테이너가 생성되지 않으므로 flags 는 무시됩니다. 다시 말해, window 가 위젯에 속해 있다면, 이 함수를 사용하는 대신 해당 위젯의 부모를 parent 로 재설정하는 것을 고려해 보십시오.

[signal] void QWidget::customContextMenuRequested(const QPoint &pos)

이 신호는 위젯의 ` contextMenuPolicy ` 속성이 ` Qt::CustomContextMenu`로 설정되어 있고, 사용자가 위젯에서 컨텍스트 메뉴를 요청했을 때 발생합니다. 위치 ` pos `는 위젯이 수신하는 컨텍스트 메뉴 이벤트의 위치입니다. 일반적으로 이 위치는 위젯 좌표계로 표시됩니다. 이 규칙의 예외는 ` QAbstractScrollArea ` 및 그 하위 클래스로, 이들은 컨텍스트 메뉴 이벤트를 ` viewport()`의 좌표로 매핑합니다.

mapToGlobal(), QMenu 및 contextMenuPolicy도 참조하십시오 .

[protected] void QWidget::destroy(bool destroyWindow = true, bool destroySubWindows = true)

윈도우 시스템 리소스를 해제합니다. ` destroyWindow `가 `true`인 경우 위젯 윈도우를 제거합니다.

destroy()는 모든 자식 위젯에 대해 재귀적으로 호출되며, ` destroyWindow ` 매개변수에 ` destroySubWindows `를 전달합니다. 하위 위젯의 소멸을 더 세밀하게 제어하려면, 먼저 하위 위젯을 선택적으로 소멸시키십시오.

이 함수는 일반적으로 QWidget 의 소멸자에서 호출됩니다.

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

이 이벤트 핸들러는 드래그가 진행 중일 때 마우스가 이 위젯 영역에 진입하면 호출됩니다. 이 이벤트는 ` event ` 매개변수를 통해 전달됩니다.

이 이벤트를 무시하면 위젯은 drag move events 를 수신하지 못합니다.

애플리케이션에서 드래그 앤 드롭 기능을 구현하는 방법에 대한 개요는 드래그 앤 드롭 문서를 참조하십시오.

QDrag 및 QDragEnterEvent도 참조하십시오 .

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

이 이벤트 핸들러는 드래그가 진행 중일 때 마우스가 이 위젯을 벗어나면 호출됩니다. 이벤트는 ` event ` 매개변수를 통해 전달됩니다.

애플리케이션에서 드래그 앤 드롭 기능을 구현하는 방법에 대한 개요는 드래그 앤 드롭 문서를 참조하십시오.

QDrag 및 QDragLeaveEvent도 참조하십시오 .

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

이 이벤트 핸들러는 드래그가 진행 중일 때, 그리고 커서가 이 위젯에 진입하거나, 커서가 이 위젯 내에서 이동하거나, 이 위젯이 포커스를 가지고 있는 상태에서 키보드의 수정 키가 눌리는 등 다음 조건 중 하나가 발생할 때 호출됩니다. 이벤트는 ` event ` 매개변수를 통해 전달됩니다.

애플리케이션에서 드래그 앤 드롭 기능을 구현하는 방법에 대한 개요는 드래그 앤 드롭 문서를 참조하십시오.

QDrag 및 QDragMoveEvent도 참조하십시오 .

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

이 이벤트 핸들러는 이 위젯에 드래그된 항목이 놓일 때 호출됩니다. 이벤트는 ` event ` 매개변수를 통해 전달됩니다.

애플리케이션에서 드래그 앤 드롭 기능을 구현하는 방법에 대한 개요는 드래그 앤 드롭 문서를 참조하십시오.

QDrag 및 QDropEvent도 참조하십시오 .

WId QWidget::effectiveWinId() const

위젯의 유효한 윈도우 시스템 식별자, 즉 네이티브 상위 위젯의 윈도우 시스템 식별자를 반환합니다.

위젯이 네이티브인 경우, 이 함수는 네이티브 위젯 ID를 반환합니다. 그렇지 않은 경우, 첫 번째 네이티브 부모 위젯, 즉 이 위젯을 포함하는 최상위 위젯의 창 ID가 반환됩니다.

참고: 이 값은 런타임 중에 변경될 가능성이 높으므로 저장하지 않는 것이좋습니다 .

참조: ` nativeParentWidget()` 함수.

void QWidget::ensurePolished() const

위젯과 그 자식 요소들이 ‘ QStyle ’를 통해 다듬어졌는지(즉, 적절한 글꼴과 색상 팔레트가 적용되었는지) 확인합니다.

QWidget 이 함수는 위젯이 완전히 생성된 후, 그러나 처음 표시되기 전에 호출됩니다. 어떤 작업을 수행하기 전에 위젯이 'polished' 상태인지 확인하고 싶다면 이 함수를 호출할 수 있습니다. 예를 들어, 위젯의 sizeHint() 재구현에서 올바른 글꼴 크기가 필요할 수 있습니다. 이 함수는 sizeHint()의 기본 구현에서 호출된다는 점에 유의하십시오.

폴리싱은 (기초 클래스와 하위 클래스의) 모든 생성자가 호출된 후에 이루어져야 하는 최종 초기화에 유용합니다.

위젯이 폴리싱될 때 일부 설정을 변경해야 하는 경우, ` event()`를 재구현하고 ` QEvent::Polish ` 이벤트 유형을 처리하십시오.

참고: 이 함수는 다른 const 함수(예: sizeHint())에서 호출될 수 있도록 const로 선언되었습니다.

event()도 참조하십시오 .

[virtual protected] void QWidget::enterEvent(QEnterEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여, ` event ` 매개변수를 통해 전달되는 위젯 진입 이벤트를 수신할 수 있습니다.

마우스 커서가 위젯 영역에 진입하면 위젯으로 이벤트가 전송됩니다.

leaveEvent(), mouseMoveEvent(), event()도 참조하십시오 .

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

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

이 함수는 주요 이벤트 핸들러로, event 이벤트를 처리합니다. 하위 클래스에서 이 함수를 재구현할 수 있지만, 대신 특화된 이벤트 핸들러 중 하나를 사용하는 것을 권장합니다.

키 누름 및 뗄 때 이벤트는 다른 이벤트와 다르게 처리됩니다. event()는 Tab 및 Shift+Tab을 확인하고 포커스를 적절하게 이동시키려고 시도합니다. 포커스를 이동할 위젯이 없거나(또는 누른 키가 Tab이나 Shift+Tab이 아닌 경우), event()는 keyPressEvent()를 호출합니다.

마우스 및 태블릿 이벤트 처리도 약간 특별합니다. 위젯이 enabled 인 경우에만 event()는 mousePressEvent()와 같은 특화된 핸들러를 호출하며, 그렇지 않으면 이벤트를 무시합니다.

이 함수는 이벤트가 인식된 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다. 인식된 이벤트가 수락된 경우( QEvent::accepted 참조), 부모 위젯으로의 이벤트 전파와 같은 추가 처리는 중단됩니다.

closeEvent(), focusInEvent(), focusOutEvent(), enterEvent(), keyPressEvent(), keyReleaseEvent(), leaveEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), moveEvent(), paintEvent(), resizeEvent(), QObject::event() 및 QObject::timerEvent()도 참조하십시오.

[static] QWidget *QWidget::find(WId id)

창 식별자/핸들 id 을 가진 위젯에 대한 포인터를 반환합니다.

창 식별자의 유형은 기본이 되는 창 시스템에 따라 다르며, 실제 정의는 qwindowdefs.h 을 참조하십시오. 이 식별자를 가진 위젯이 없는 경우, nullptr 이 반환됩니다.

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

이 이벤트 핸들러는 하위 클래스에서 재구현하여 위젯에 대한 키보드 포커스 이벤트(포커스 수신)를 수신할 수 있습니다. 이 이벤트는 ` event ` 매개변수를 통해 전달됩니다.

위젯은 일반적으로 포커스 이벤트를 수신하려면 ` setFocusPolicy()`를 ` Qt::NoFocus ` 이외의 값으로 설정해야 합니다. (단, 애플리케이션 프로그래머는 일반적으로 포커스를 허용하지 않는 위젯을 포함하여 어떤 위젯에서든 ` setFocus()`를 호출할 수 있습니다.)

기본 구현은 위젯을 업데이트합니다( focusPolicy()를 지정하지 않은 창은 제외).

focusOutEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event() 및 QFocusEvent도 참조하십시오 .

[protected] bool QWidget::focusNextChild()

Tab 에 적합한 새로운 위젯을 찾아 키보드 포커스를 부여하며, 새로운 위젯을 찾을 수 있으면 true 를 반환하고, 찾을 수 없으면 false를 반환합니다.

focusPreviousChild()도 참조하십시오 .

[virtual protected] bool QWidget::focusNextPrevChild(bool next)

Tab 및 Shift+Tab 키에 따라 키보드 포커스를 줄 새로운 위젯을 찾으며, 새로운 위젯을 찾으면 ` true `를 반환하고, 찾지 못하면 `false`를 반환합니다.

next 가 true인 경우 이 함수는 앞으로 검색하고, next 가 false인 경우 뒤로 검색합니다.

때로는 이 함수를 재구현해야 할 수도 있습니다. 예를 들어, 웹 브라우저는 “현재 활성화된 링크”를 앞뒤로 이동시키기 위해 이 함수를 재구현하고, “페이지”의 마지막 또는 첫 번째 링크에 도달했을 때만 focusNextPrevChild()를 호출할 수 있습니다.

자식 위젯은 부모 위젯에 대해 focusNextPrevChild()를 호출하지만, 포커스를 어디로 이동시킬지는 자식 위젯을 포함하는 창만이 결정합니다. 따라서 객체에 대해 이 함수를 재구현함으로써 모든 자식 위젯의 포커스 이동 경로를 제어할 수 있게 됩니다.

focusNextChild() 및 focusPreviousChild()도 참조하십시오 .

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

이 이벤트 핸들러는 위젯에 대한 키보드 포커스 이벤트(포커스 상실)를 수신하기 위해 하위 클래스에서 재구현할 수 있습니다. 이벤트는 ` event ` 매개변수를 통해 전달됩니다.

위젯은 일반적으로 포커스 이벤트를 수신하려면 setFocusPolicy()을 Qt::NoFocus 이외의 값으로 설정해야 합니다. (단, 애플리케이션 프로그래머는 일반적으로 포커스를 허용하지 않는 위젯을 포함하여 어떤 위젯에 대해서도 setFocus()을 호출할 수 있습니다.)

기본 구현은 위젯을 업데이트합니다( focusPolicy()를 지정하지 않은 창은 제외).

focusInEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event() 및 QFocusEvent도 참조하십시오 .

[protected] bool QWidget::focusPreviousChild()

Shift+Tab 에 적합한 새로운 위젯을 찾아 키보드 포커스를 부여하며, 새로운 위젯을 찾을 수 있으면 true 를 반환하고, 찾을 수 없으면 false를 반환합니다.

focusNextChild()도 참조하십시오 .

QWidget *QWidget::focusProxy() const

포커스 프록시를 반환하거나, 포커스 프록시가 없는 경우 ` nullptr `를 반환합니다.

setFocusProxy()도 참조하십시오 .

QWidget *QWidget::focusWidget() const

setFocus 가 호출된 이 위젯의 마지막 자식 위젯을 반환합니다. 최상위 위젯의 경우, 이 창이 활성화될 때 포커스를 받게 될 위젯입니다.

이는 현재 활성화된 창에서 포커스를 받고 있는 위젯을 반환하는 ` QApplication::focusWidget()` 함수와는 다릅니다.

QFontInfo QWidget::fontInfo() const

위젯의 현재 글꼴에 대한 글꼴 정보를 반환합니다. QFontInfo(widget->font()) 과 동일합니다.

font(), fontMetrics(), setFont()도 참조하십시오 .

QFontMetrics QWidget::fontMetrics() const

위젯의 현재 글꼴에 대한 글꼴 메트릭을 반환합니다. QFontMetrics(widget->font()) 와 동일합니다.

font(), fontInfo() 및 setFont()도 참조하십시오 .

QPalette::ColorRole QWidget::foregroundRole() const

전경 색상을 반환합니다.

전경 역할은 위젯의 ' palette '에서 전경을 그리는 데 사용되는 색상을 정의합니다.

명시적인 전경 역할이 설정되지 않은 경우, 이 함수는 배경 역할과 대비되는 역할을 반환합니다.

setForegroundRole() 및 backgroundRole()도 참조하십시오 .

[invokable] QPixmap QWidget::grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))

지정된 ` rectangle`로 제한된 픽스맵에 위젯을 렌더링합니다. 위젯에 자식 요소가 있는 경우, 해당 요소들도 적절한 위치에 그려집니다.

유효하지 않은 크기의 사각형이 지정된 경우(기본값), 위젯 전체가 그려집니다.

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

render() 및 QPixmap도 참조하십시오 .

void QWidget::grabGesture(Qt::GestureType gesture, Qt::GestureFlags flags = Qt::GestureFlags())

지정된 gesture 에 특정 flags 를 사용하여 위젯을 구독합니다.

ungrabGesture() 및 QGestureEvent도 참조하십시오 .

void QWidget::grabKeyboard()

키보드 입력을 가로챕니다.

이 위젯은 releaseKeyboard()이 호출될 때까지 모든 키보드 이벤트를 수신하며, 다른 위젯들은 키보드 이벤트를 전혀 수신하지 못합니다. 마우스 이벤트는 영향을 받지 않습니다. 마우스 이벤트를 가로채려면 grabMouse()을 사용하십시오.

포커스가 있는 위젯은 키보드 이벤트를 전혀 수신하지 않는다는 점을 제외하면 영향을 받지 않습니다. ` setFocus()`는 평소와 같이 포커스를 이동시키지만, 새로운 포커스 위젯은 ` releaseKeyboard()`가 호출된 후에만 키보드 이벤트를 수신합니다.

현재 다른 위젯이 키보드 입력을 확보하고 있는 경우, 해당 위젯의 확보 상태가 먼저 해제됩니다.

releaseKeyboard(), grabMouse(), releaseMouse(), focusWidget()도 참조하십시오 .

void QWidget::grabMouse()

마우스 입력을 포착합니다.

이 위젯은 ` releaseMouse()`가 호출될 때까지 모든 마우스 이벤트를 수신하며, 다른 위젯들은 마우스 이벤트를 전혀 수신하지 못합니다. 키보드 이벤트에는 영향을 미치지 않습니다. 키보드 입력을 가로채려면 ` grabKeyboard()`를 사용하십시오.

경고: 마우스 잠금 기능이 있는 애플리케이션의버그로 인해 터미널이 잠기는 경우가 매우 흔합니다. 이 함수를 사용할 때는 각별히 주의해야 하며, 디버깅 시에는 -nograb 명령줄 옵션을 사용하는 것을 고려하십시오.

Qt를 사용할 때는 마우스를 캡처할 필요가 거의 없습니다. Qt가 마우스를 적절하게 캡처하고 해제하기 때문입니다. 특히, Qt는 마우스 버튼이 눌릴 때 마우스를 캡처하고 마지막 버튼이 풀릴 때까지 유지합니다.

참고: 표시된위젯만 마우스 입력을 가로챌 수 있습니다. isVisible()가 위젯에 대해 ` false `를 반환하면, 해당 위젯은 `grabMouse()`를 호출할 수 없습니다.

참고: Windows에서는 grabMouse()가 마우스가 해당 프로세스가 소유한 창 내에 있을 때만 작동합니다. macOS에서는 grabMouse()가 마우스가 해당 위젯의 프레임 내에 있을 때만 작동합니다.

releaseMouse(), grabKeyboard(), releaseKeyboard()도 참조하십시오 .

void QWidget::grabMouse(const QCursor &cursor)

마우스 입력을 확보하고 커서 모양을 변경합니다.

커서는 cursor 모양을 가지게 되며(마우스 포커스가 캡처된 동안), releaseMouse()이 호출될 때까지 이 위젯만이 마우스 이벤트를 수신하게 됩니다.

경고: 마우스를캡처하면 터미널이 잠길 수 있습니다.

참고: QWidget::grabMouse()의 참고 사항을참조하십시오 .

이 함수는 QWidget::grabMouse()를 오버로드합니다.

releaseMouse(), grabKeyboard(), releaseKeyboard() 및 setCursor()도 참조하십시오 .

int QWidget::grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut)

지정된 context 내에서 지정된 key 시퀀스를 감시하는 바로가기를 Qt의 바로가기 시스템에 추가합니다. context 이 Qt::ApplicationShortcut 인 경우, 바로가기는 애플리케이션 전체에 적용됩니다. 그렇지 않은 경우, 이 위젯에만 국한되거나( Qt::WidgetShortcut), 창 자체에만 국한됩니다( Qt::WindowShortcut).

동일한 key 시퀀스가 여러 위젯에 의해 캡처된 경우, key 시퀀스가 발생하면 QEvent::Shortcut 이벤트가 해당 이벤트가 적용되는 모든 위젯으로 비결정적인 순서대로 전송되지만, ``ambiguous'' 플래그는 true로 설정됩니다.

경고: 일반적으로 이 함수를 사용할필요는 없습니다 . 대신 필요한 단축키 시퀀스로 ` QAction`를 생성하거나(동등한 메뉴 옵션 및 툴바 버튼도 원하는 경우), 키 시퀀스만 필요한 경우에는 ` QShortcut`를 생성하십시오. QAction 와 QShortcut 는 모든 이벤트 필터링을 자동으로 처리해 주며, 사용자가 키 시퀀스를 실행할 때 트리거되는 신호를 제공하므로, 이 저수준 함수보다 사용하기가 훨씬 쉽습니다.

releaseShortcut() 및 setShortcutEnabled()도 참조하십시오 .

QGraphicsEffect *QWidget::graphicsEffect() const

graphicsEffect 함수는 위젯의 그래픽 효과에 대한 포인터를 반환합니다.

위젯에 Graphical Effects가 없는 경우, ` nullptr `가 반환됩니다.

setGraphicsEffect()도 참조하십시오 .

QGraphicsProxyWidget *QWidget::graphicsProxyWidget() const

그래픽 뷰 내의 해당 임베디드 위젯에 대한 프록시 위젯을 반환합니다. 그렇지 않은 경우 ` nullptr`를 반환합니다.

QGraphicsProxyWidget::createProxyForChildWidget() 및 QGraphicsScene::addWidget()도 참조하십시오 .

[virtual] bool QWidget::hasHeightForWidth() const

위젯의 선호 높이가 너비에 따라 달라지는 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.

[virtual] int QWidget::heightForWidth(int w) const

w 로 지정된 너비를 기준으로 이 위젯의 선호 높이를 반환합니다.

이 위젯에 레이아웃이 있는 경우, 기본 구현은 레이아웃의 선호 높이를 반환합니다. 레이아웃이 없는 경우, 기본 구현은 선호 높이가 너비에 의존하지 않음을 나타내는 -1을 반환합니다.

[slot] void QWidget::hide()

위젯을 숨깁니다. 이 함수는 ` setVisible(false)`와 동일합니다.

참고: QDialog 또는 그 하위 클래스를 사용 중일때 , 이 함수 호출 후 show() 함수를 호출하면 대화 상자가 원래 위치에 다시 표시됩니다.

참조: hideEvent(), isHidden(), show(), setVisible(), isVisible(), close().

[virtual protected] void QWidget::hideEvent(QHideEvent *event)

이 이벤트 핸들러는 위젯 숨김 이벤트를 수신하기 위해 하위 클래스에서 재구현할 수 있습니다. 이벤트는 ` event ` 매개변수를 통해 전달됩니다.

숨김 이벤트는 위젯이 숨겨진 직후 해당 위젯으로 전송됩니다.

참고: 위젯은 윈도우 시스템에 의해 매핑 상태가 변경될 때 자발적인 표시 및 숨김 이벤트를 수신합니다. 예를 들어, 사용자가 창을 최소화하면 자발적인 숨김 이벤트가 발생하고, 창이 다시 복원되면 자발적인 표시 이벤트가 발생합니다. 자발적인 숨김 이벤트를 수신한 후에도 위젯은 isVisible()의 관점에서 여전히 표시된 것으로 간주됩니다.

visible, event() 및 QHideEvent도 참조하십시오 .

[override virtual protected] void QWidget::initPainter(QPainter *painter) const

painter 의 펜, 배경 및 글꼴을 지정된 위젯의 설정과 동일하게 초기화합니다. 이 함수는 QWidget 에서 페인터가 열릴 때 자동으로 호출됩니다.

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

event 이벤트에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 입력 방식 조합 이벤트를 수신할 수 있습니다. 이 핸들러는 입력 방식의 상태가 변경될 때 호출됩니다.

사용자 정의 텍스트 편집 위젯을 생성할 때는 입력 방식 이벤트를 수신하기 위해 Qt::WA_InputMethodEnabled 창 속성을 ( setAttribute() 함수를 사용하여) 명시적으로 설정해야 한다는 점에 유의하십시오.

기본 구현은 event->ignore()를 호출하여 입력 방식 이벤트를 거부합니다. 자세한 내용은 QInputMethodEvent 문서를 참조하십시오.

event() 및 QInputMethodEvent도 참조하십시오 .

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

이 메서드는 입력 위젯에만 적용됩니다. 입력 방식은 이 메서드를 사용하여 위젯의 일련의 속성을 조회함으로써, 주변 텍스트 처리 및 재변환과 같은 복잡한 입력 방식 작업을 지원할 수 있습니다.

query 어떤 속성을 조회할지 지정합니다.

inputMethodEvent(), QInputMethodEvent, QInputMethodQueryEvent 및 inputMethodHints도 참조하십시오 .

void QWidget::insertAction(QAction *before, QAction *action)

이 위젯의 액션 목록에 ‘ action ’ 액션을 ‘ before ’ 액션 바로 앞에 삽입합니다. ‘ before ’가 ‘ nullptr ’이거나 ‘ before ’가 이 위젯에 대해 유효한 액션이 아닌 경우, 해당 액션을 목록 끝에 추가합니다.

QWidget 에는 각 액션이 하나씩만 포함되어야 합니다.

removeAction(), addAction(), QMenu, contextMenuPolicy 및 actions()도 참조하십시오 .

void QWidget::insertActions(QAction *before, const QList<QAction *> &actions)

이 위젯의 동작 목록에 ‘ actions ’ 동작을 ‘ before ’ 동작 바로 앞에 삽입합니다. ‘ before ’이 ‘ nullptr ’인 경우, 또는 ‘ before ’이 이 위젯에 대해 유효한 동작이 아닌 경우, 해당 동작을 목록 끝에 추가합니다.

QWidget 에는 각 액션 유형별로 최대 하나씩만 포함될 수 있습니다.

removeAction(), QMenu, insertAction(), contextMenuPolicy도 참조하십시오 .

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

이 위젯이 주어진 child 의 부모(또는 조부모 등 어떤 수준이든)이고, 두 위젯이 모두 동일한 창 내에 있는 경우 true 를 반환하며, 그렇지 않은 경우 false 를 반환합니다.

bool QWidget::isEnabledTo(const QWidget *ancestor) const

ancestor 가 활성화되면 이 위젯도 활성화될 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

이는 위젯 자체나 ancestor 까지( 은 제외)의 모든 상위 위젯 중 어느 것도 명시적으로 비활성화되지 않은 경우에 해당합니다.

isEnabledTo(0)는 이 위젯이나 그 조상 중 어느 하나라도 명시적으로 비활성화된 경우 false를 반환합니다.

여기서 ‘조상’이란 동일한 창 내의 부모 위젯을 의미합니다.

따라서 isEnabledTo(0)은 상위 창도 고려하는 isEnabled()과 달리, 이 위젯의 창에서 검색을 중단합니다.

setEnabled() 및 enabled도 참조하십시오 .

bool QWidget::isHidden() const

위젯이 숨겨져 있으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.

숨겨진 위젯은 show()가 호출될 때만 표시됩니다. 부모 위젯이 표시될 때 자동으로 표시되지는 않습니다.

표시 여부를 확인하려면 대신 !isVisible()를 사용하십시오(느낌표에 유의하십시오).

isHidden()은 !isVisible()을 의미하지만, 위젯은 보이지 않으면서도 숨겨지지 않은 상태일 수 있습니다. 이는 보이지 않는 위젯의 자식인 위젯의 경우입니다.

위젯은 다음과 같은 경우 숨겨집니다:

  • 독립된 창으로 생성된 경우,
  • 보이는 위젯의 자식으로 생성된 경우,
  • hide() 또는 setVisible(false)가 호출된 경우.

bool QWidget::isVisibleTo(const QWidget *ancestor) const

ancestor 가 표시될 경우 이 위젯이 보이게 된다면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

위젯 자체나 ancestor 을 제외한 모든 상위 부모가 명시적으로 숨겨지지 않은 경우 true를 반환합니다.

이 위젯이 화면상의 다른 창에 가려져 있더라도, 해당 창이나 위젯을 이동하면 물리적으로 표시될 수 있는 경우에는 이 함수는 여전히 true를 반환합니다.

isVisibleTo(0)는 isVisible()와 동일합니다.

show(), hide() 및 isVisible()도 참조하십시오 .

bool QWidget::isWindow() const

위젯이 독립적인 창인 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.

창은 시각적으로 다른 위젯의 자식이 아니며, 일반적으로 프레임과 window title 을 갖는 위젯입니다.

창은 parent widget 을 가질 수 있습니다. 이 경우 해당 창은 부모와 그룹화되어, 부모가 삭제되면 함께 삭제되고, 부모가 최소화되면 함께 최소화되는 등의 동작을 보입니다. 또한, 창 관리자가 지원하는 경우, 부모와 공통된 작업 표시줄 항목을 갖게 됩니다.

QDialog 또한 QMainWindow 위젯은 생성자에서 부모 위젯이 지정된 경우라도 기본적으로 창으로 간주됩니다. 이 동작은 Qt::Window 플래그에 의해 지정됩니다.

window(), isModal(), parentWidget()도 참조하십시오 .

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

event 이벤트에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 위젯의 키 입력 이벤트를 수신할 수 있습니다.

위젯은 키 누름 이벤트를 수신하기 위해 처음에 setFocusPolicy()를 호출하여 포커스를 수락하고 포커스를 유지해야 합니다.

이 핸들러를 재구현하는 경우, 키에 대한 처리를 수행하지 않는다면 기본 클래스의 구현을 호출하는 것이 매우 중요합니다.

기본 구현은 사용자가 QKeySequence::Cancel 에 해당하는 키 조합(일반적으로 Escape 키)을 누르면 팝업 위젯을 닫습니다. 그렇지 않은 경우 이벤트는 무시되어 위젯의 부모가 이를 해석할 수 있도록 합니다.

QKeyEvent 는 isAccepted() == true로 시작하므로, QKeyEvent::accept()를 호출할 필요는 없습니다. 단, 키에 대한 처리를 하는 경우에는 기본 클래스의 구현을 호출하지 마십시오.

keyReleaseEvent(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event() 및 QKeyEvent도 참조하십시오 .

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

event 이벤트에 대한 이 이벤트 핸들러는 위젯의 키 릴리스 이벤트를 수신하기 위해 하위 클래스에서 재구현할 수 있습니다.

위젯이 키 릴리스 이벤트를 수신하려면 처음에 ` accept focus `를 호출하고, ` have focus `를 호출해야 합니다.

이 핸들러를 재구현하는 경우, 키에 대한 처리를 수행하지 않는다면 기본 클래스의 구현을 호출하는 것이 매우 중요합니다.

기본 구현은 이벤트를 무시하므로, 위젯의 부모가 이를 해석할 수 있습니다.

QKeyEvent 는 isAccepted() == true로 시작하므로, QKeyEvent::accept()를 호출할 필요가 없습니다. 단, 키에 대한 처리를 수행하는 경우에는 기본 클래스 구현을 호출하지 마십시오.

keyPressEvent(), QEvent::ignore(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event() 및 QKeyEvent도 참조하십시오 .

[static] QWidget *QWidget::keyboardGrabber()

현재 키보드 입력을 점유하고 있는 위젯을 반환합니다.

이 애플리케이션에서 현재 키보드 입력을 확보하고 있는 위젯이 없는 경우, ` nullptr `가 반환됩니다.

grabMouse() 및 mouseGrabber()도 참조하십시오 .

QLayout *QWidget::layout() const

이 위젯에 설치된 레이아웃 관리자를 반환하며, 레이아웃 관리자가 설치되어 있지 않은 경우에는 ` nullptr `를 반환합니다.

레이아웃 관리자는 레이아웃에 추가된 위젯의 자식 요소들의 기하학적 크기를 설정합니다.

setLayout(), sizePolicy() 및 레이아웃 관리항목도 참조하십시오 .

[virtual protected] void QWidget::leaveEvent(QEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 ` event ` 매개변수를 통해 전달되는 위젯 이탈 이벤트를 수신할 수 있습니다.

마우스 커서가 위젯을 벗어나면 위젯으로 이탈 이벤트가 전송됩니다.

enterEvent(), mouseMoveEvent(), event()도 참조하십시오 .

[slot] void QWidget::lower()

위젯을 부모 위젯 스택의 맨 아래로 내려놓습니다.

이 호출 후에는 위젯이 겹치는 형제 위젯들 뒤에 위치하게 되어(따라서 가려지게 됩니다).

raise() 및 stackUnder()도 참조하십시오 .

[since 6.0] QPointF QWidget::mapFrom(const QWidget *parent, const QPointF &pos) const

위젯 좌표 pos 를 좌표계 parent 에서 이 위젯의 좌표계로 변환합니다. parent 는 nullptr 가 아니어야 하며, 호출하는 위젯의 부모여야 합니다.

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

mapTo(), mapFromParent(), mapFromGlobal(), underMouse()도 참조하십시오 .

QPoint QWidget::mapFrom(const QWidget *parent, const QPoint &pos) const

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

[since 6.0] QPointF QWidget::mapFromGlobal(const QPointF &pos) const

전역 화면 좌표 pos 를 위젯 좌표로 변환합니다.

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

mapToGlobal(), mapFrom(), mapFromParent()도 참조하십시오 .

QPoint QWidget::mapFromGlobal(const QPoint &pos) const

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

[since 6.0] QPointF QWidget::mapFromParent(const QPointF &pos) const

부모 위젯의 좌표 pos 를 위젯 좌표로 변환합니다.

위젯에 부모가 없는 경우 mapFromGlobal()과 동일합니다.

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

mapToParent(), mapFrom(), mapFromGlobal(), underMouse()도 참조하십시오 .

QPoint QWidget::mapFromParent(const QPoint &pos) const

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

[since 6.0] QPointF QWidget::mapTo(const QWidget *parent, const QPointF &pos) const

위젯 좌표계 pos 를 좌표계 parent 로 변환합니다. parent 는 nullptr 가 아니어야 하며, 호출하는 위젯의 부모여야 합니다.

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

mapFrom(), mapToParent(), mapToGlobal(), underMouse()도 참조하십시오 .

QPoint QWidget::mapTo(const QWidget *parent, const QPoint &pos) const

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

[since 6.0] QPointF QWidget::mapToGlobal(const QPointF &pos) const

위젯 좌표 pos 를 전체 화면 좌표로 변환합니다. 예를 들어, ` mapToGlobal(QPointF(0,0)) `는 위젯의 왼쪽 상단 픽셀에 해당하는 전체 화면 좌표를 반환합니다.

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

mapFromGlobal(), mapTo(), mapToParent()도 참조하십시오 .

QPoint QWidget::mapToGlobal(const QPoint &pos) const

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

[since 6.0] QPointF QWidget::mapToParent(const QPointF &pos) const

위젯 좌표 pos 를 상위 위젯의 좌표로 변환합니다.

위젯에 부모가 없는 경우 mapToGlobal()와 동일합니다.

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

mapFromParent(), mapTo(), mapToGlobal(), underMouse()도 참조하십시오 .

QPoint QWidget::mapToParent(const QPoint &pos) const

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

QRegion QWidget::mask() const

위젯에 현재 설정된 마스크를 반환합니다. 마스크가 설정되어 있지 않으면 반환 값은 빈 영역이 됩니다.

setMask(), clearMask(), QRegion::isEmpty()도 참조하십시오 .

[override virtual protected] int QWidget::metric(QPaintDevice::PaintDeviceMetric m) const

QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const를 재구현합니다.

가상 함수 QPaintDevice::metric()의 내부 구현입니다.

m 는 가져올 메트릭입니다.

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

event 이벤트에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 위젯에 대한 마우스 더블 클릭 이벤트를 수신할 수 있습니다.

기본 구현은 mousePressEvent()을 호출합니다.

참고: 위젯은 더블 클릭 이벤트 외에도 마우스 누름 및 마우스 떼기 이벤트를 수신합니다. 또한 이 위젯과 겹치는 다른 위젯이 누름 또는 떼기 이벤트에 반응하여 사라지면, 이 위젯은 더블 클릭 이벤트만 수신하게 됩니다. 애플리케이션이 이러한 이벤트를 올바르게 해석하도록 하는 것은 개발자의 책임입니다.

mousePressEvent(), mouseReleaseEvent(), mouseMoveEvent(), event() 및 QMouseEvent도 참조하십시오 .

[static] QWidget *QWidget::mouseGrabber()

현재 마우스 입력을 포착하고 있는 위젯을 반환합니다.

이 애플리케이션에서 현재 마우스 입력을 확보하고 있는 위젯이 없는 경우, ` nullptr `가 반환됩니다.

grabMouse() 및 keyboardGrabber()도 참조하십시오 .

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

event 이벤트에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 위젯의 마우스 이동 이벤트를 수신할 수 있습니다.

마우스 추적 기능이 꺼져 있는 경우, 마우스 이동 이벤트는 마우스를 이동하는 동안 마우스 버튼이 눌려 있을 때만 발생합니다. 마우스 추적 기능이 켜져 있는 경우, 마우스 버튼이 눌려 있지 않아도 마우스 이동 이벤트가 발생합니다.

QMouseEvent::position()는 이 위젯을 기준으로 한 마우스 커서의 위치를 보고합니다. 누름 및 놓음 이벤트의 경우, 위치는 대개 마지막 마우스 이동 이벤트의 위치와 동일하지만, 사용자의 손이 떨리는 경우에는 다를 수 있습니다. 이는 Qt가 아닌 기본 윈도우 시스템의 기능입니다.

마우스가 이동하는 동안 즉시 툴팁을 표시하려면(예: QMouseEvent::position()을 사용하여 마우스 좌표를 가져와 툴팁으로 표시하는 경우), 앞서 설명한 대로 먼저 마우스 추적 기능을 활성화해야 합니다. 그런 다음 툴팁이 즉시 업데이트되도록 하려면, mouseMoveEvent() 구현에서 setToolTip() 대신 QToolTip::showText()을 호출해야 합니다.

setMouseTracking(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), event(), QMouseEvent 및 Scribble 예제도참조하십시오 .

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

event 이벤트에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 위젯에 대한 마우스 누름 이벤트를 수신할 수 있습니다.

mousePressEvent() 내에서 새로운 위젯을 생성하는 경우, 기본이 되는 윈도우 시스템(또는 X11 윈도우 매니저), 위젯의 위치 및 기타 요인에 따라 mouseReleaseEvent()이 예상한 위치에서 종료되지 않을 수 있습니다.

기본 구현은 창 바깥쪽을 클릭할 때 팝업 위젯을 닫도록 되어 있습니다. 다른 위젯 유형의 경우 아무 작업도 수행하지 않습니다.

mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent 및 Scribble 예제도참조하십시오 .

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

event 이벤트에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 위젯의 마우스 릴리스 이벤트를 수신할 수 있습니다.

mousePressEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent 및 Scribble 예제도참조하십시오 .

void QWidget::move(int x, int y)

이는 move(QPoint(x, y))에 해당합니다.

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

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

[virtual protected] void QWidget::moveEvent(QMoveEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 event 매개변수를 통해 전달되는 위젯 이동 이벤트를 수신할 수 있습니다. 위젯이 이 이벤트를 수신할 때, 위젯은 이미 새로운 위치에 있습니다.

이전 위치는 ` QMoveEvent::oldPos()`를 통해 확인할 수 있습니다.

resizeEvent(), event(), move() 및 QMoveEvent도 참조하십시오 .

[virtual protected] bool QWidget::nativeEvent(const QByteArray &eventType, void *message, qintptr *result)

eventType 이 특수 이벤트 핸들러는 하위 클래스에서 재구현하여, message 로 식별되는 네이티브 플랫폼 이벤트를 매개변수를 통해 수신할 수 있습니다.

이 함수를 재구현할 때, Qt가 이벤트를 처리하는 것을 중지하려면 true를 반환하고 result 를 설정하십시오. result 매개변수는 Windows에서만 의미가 있습니다. false를 반환하면 이 네이티브 이벤트는 Qt로 다시 전달되며, Qt는 해당 이벤트를 Qt 이벤트로 변환하여 위젯으로 보냅니다.

참고: 위젯에 네이티브 창 핸들이 있는 경우에만이벤트가 이 이벤트 핸들러로 전달됩니다.

참고: 이 함수는 Qt 4의 이벤트 필터 함수인 x11Event(), winEvent() 및 macEvent()를 대체합니다.

플랫폼이벤트 유형 식별자메시지 유형결과 유형
Windows"windows_generic_MSG"MSG *LRESULT
macOS"NSEvent"NSEvent *
XCB"xcb_generic_event_t"xcb_generic_event_t *

QAbstractNativeEventFilter도 참조하십시오 .

QWidget *QWidget::nativeParentWidget() const

이 위젯의 네이티브 부모, 즉 시스템 식별자를 가진 바로 위 조상 위젯을 반환하며, 네이티브 부모가 없는 경우에는 nullptr 를 반환합니다.

effectiveWinId()도 참조하십시오 .

QWidget *QWidget::nextInFocusChain() const

이 위젯의 포커스 체인에 있는 다음 위젯을 반환합니다.

previousInFocusChain()도 참조하십시오 .

void QWidget::overrideWindowFlags(Qt::WindowFlags flags)

윈도우 시스템에 알리지 않고 위젯의 창 플래그를 ` flags`로 설정합니다.

경고: 자신이 무엇을 하고 있는지 확실히 알고 있는 경우가 아니면 이 함수를 호출하지마십시오 .

setWindowFlags()도 참조하십시오 .

[override virtual] QPaintEngine *QWidget::paintEngine() const

QPaintDevice::paintEngine() const를 재구현합니다.

위젯의 페인트 엔진을 반환합니다.

이 함수는 재구현 목적으로만 사용되도록 설계되었으므로, 사용자가 명시적으로 호출해서는 안 됩니다. 이 함수는 Qt 내부에서 호출되며, 기본 구현이 항상 유효한 포인터를 반환하는 것은 아닙니다.

[virtual protected] void QWidget::paintEvent(QPaintEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 ` event`를 통해 전달되는 페인트 이벤트를 수신할 수 있습니다.

페인트 이벤트는 위젯의 전체 또는 일부를 다시 그리도록 요청하는 것입니다. 이는 다음 이유 중 하나로 인해 발생할 수 있습니다:

  • repaint() 또는 ` update()`가 호출되었거나,
  • 위젯이 가려졌다가 다시 드러난 경우, 또는
  • 그 밖의 여러 가지 이유.

많은 위젯은 요청을 받으면 전체 표면을 간단히 다시 그리지만, 일부 처리 속도가 느린 위젯은 요청된 영역만 그리도록 최적화해야 합니다: ` QPaintEvent::region()`. 이 속도 최적화는 이벤트 처리 중에 그리기가 해당 영역으로 제한되므로 결과에는 영향을 미치지 않습니다. 예를 들어, ` QListView `와 ` QTableView `가 이와 같은 방식을 사용합니다.

Qt는 또한 여러 페인트 이벤트를 하나로 병합하여 페인트 속도를 높이려고 시도합니다. update()가 여러 번 호출되거나 윈도우 시스템에서 여러 페인트 이벤트를 보낼 경우, Qt는 이러한 이벤트를 더 넓은 영역을 가진 하나의 이벤트로 병합합니다( QRegion::united() 참조). repaint() 함수는 이러한 최적화를 허용하지 않으므로, 가능한 한 update()를 사용할 것을 권장합니다.

페인트 이벤트가 발생하면 일반적으로 업데이트 영역은 이미 지워진 상태이므로, 위젯의 배경 위에 그리게 됩니다.

배경은 setBackgroundRole() 및 setPalette()을 사용하여 설정할 수 있습니다.

Qt 4.0부터는 QWidget 가 자동으로 더블 버퍼링 처리하므로, 깜빡임을 방지하기 위해 paintEvent() 내에서 더블 버퍼링 코드를 작성할 필요가 없습니다.

참고: 일반적으로 paintEvent() 내부에서 update() 또는 repaint()을 호출하지 않는 것이 좋습니다. 예를 들어, paintEvent() 내부에서 자식 요소에 대해 update() 또는 repaint()를 호출하면 정의되지 않은 동작이 발생합니다. 자식 요소가 페인트 이벤트를 받을 수도 있고 받지 않을 수도 있습니다.

경고: Qt의 백킹스토어(backingstore)를 사용하지 않는 사용자 정의 페인트 엔진을 사용하는경우 , ` Qt::WA_PaintOnScreen `를 설정해야 합니다. 그렇지 않으면 ` QWidget::paintEngine()`가 호출되지 않으며, 대신 백킹스토어가 사용됩니다.

관련 항목: event(), repaint(), update(), QPainter, QPixmap, QPaintEvent 및 Analog Clock.

QWidget *QWidget::parentWidget() const

이 위젯의 상위 위젯을 반환하며, 상위 위젯이 없는 경우에는 ` nullptr `를 반환합니다.

QWidget *QWidget::previousInFocusChain() const

previousInFocusChain 함수는 이 위젯의 포커스 체인에서 바로 앞의 위젯을 반환합니다.

nextInFocusChain()함수도 참조하십시오 .

[slot] void QWidget::raise()

이 위젯을 부모 위젯 스택의 최상단으로 올립니다.

이 호출 후, 해당 위젯은 겹치는 모든 형제 위젯보다 시각적으로 앞에 표시됩니다.

참고: ` activateWindow()`를 사용할때 , 이 함수를 호출하여 창이 최상단에 배치되도록 할 수 있습니다.

lower() 및 stackUnder()도 참조하십시오 .

void QWidget::releaseKeyboard()

키보드 잠금을 해제합니다.

grabKeyboard(), grabMouse(), releaseMouse()도 참조하십시오 .

void QWidget::releaseMouse()

마우스 그랩을 해제합니다.

grabMouse(), grabKeyboard(), releaseKeyboard()도 참조하십시오 .

void QWidget::releaseShortcut(int id)

지정된 키 시퀀스( id )를 가진 단축키를 Qt의 단축키 시스템에서 제거합니다. 위젯은 더 이상 해당 단축키의 키 시퀀스에 대한 키 입력 이벤트( QEvent::Shortcut )를 수신하지 않게 됩니다(동일한 키 시퀀스를 가진 다른 단축키가 있는 경우는 제외).

경고: Qt의 단축키 시스템은 부모 위젯이 소멸되면 단축키를 자동으로 제거하므로, 일반적으로 이 함수를 사용할필요가 없습니다 . 이 저수준 함수보다 사용이 간편한 QAction 또는 QShortcut 를 사용하여 단축키를 처리하는 것이 가장 좋습니다. 또한 이 작업은 컴퓨팅 비용이 많이 드는 작업이라는 점에 유의하십시오.

grabShortcut() 및 setShortcutEnabled()도 참조하십시오 .

void QWidget::removeAction(QAction *action)

이 위젯의 동작 목록에서 ‘ action ’ 동작을 제거합니다.

insertAction() 및 actions()도 참조하십시오 .

void QWidget::render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))

이 위젯의 ` sourceRegion `를 ` target `로 렌더링하며, 렌더링 방식을 결정하기 위해 ` renderFlags `를 사용합니다. 렌더링은 ` target`의 ` targetOffset `에서 시작됩니다. 예를 들어:

QPixmap pixmap(widget->size());
widget->render(&pixmap);

sourceRegion 가 null 영역인 경우, 이 함수는 QWidget::rect()을 영역(즉, 위젯 전체)으로 사용합니다.

렌더링 전에 target 디바이스의 활성 페인터(있는 경우)에 대해 QPainter::end()를 호출해야 합니다. 예를 들어:

QPainter painter(this);
...
painter.end();
myWidget->render(this);

참고: QOpenGLWidget 의 내용을가져오려면 대신 QOpenGLWidget::grabFramebuffer()를 사용하십시오.

void QWidget::render(QPainter *painter, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))

위젯을 painter 의 QPainter::device()에 렌더링합니다.

painter 에 적용된 변환 및 설정이 렌더링 시 사용됩니다.

참고: painter 가 활성화되어 있어야 합니다. macOS에서는 위젯이 QPixmap 로 렌더링된 후, painter 에 의해 그려집니다.

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

QPainter::device()도 참조하십시오 .

[slot] void QWidget::repaint()

업데이트가 비활성화되어 있거나 위젯이 숨겨져 있지 않은 한, 즉시 ` paintEvent()`를 호출하여 위젯을 직접 다시 그립니다.

애니메이션 실행 중과 같이 즉각적인 다시 그리기가 필요한 경우에만 repaint()를 사용하는 것이 좋습니다. 대부분의 경우 update()를 사용하는 것이 더 낫습니다. Qt가 속도를 최적화하고 깜빡임을 최소화할 수 있기 때문입니다.

경고: paintEvent()에서 호출될 가능성이 있는 함수 내에서 repaint()를호출하면 무한 재귀가 발생할 수 있습니다. update() 함수는 절대 재귀를 일으키지 않습니다.

참고: 이 슬롯은 오버로드되어 있습니다. 이 슬롯에 연결하려면:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        widget, qOverload<>(&QWidget::repaint));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        widget, [receiver = widget]() { receiver->repaint(); });
더 많은 예제와 접근 방식은 오버로드된 슬롯에 연결하기를 참조하십시오.

update(), paintEvent(), setUpdatesEnabled()도 참조하십시오 .

void QWidget::repaint(const QRect &rect)

이 버전은 위젯 내부에 있는 사각형 rect 을 다시 그립니다.

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

void QWidget::repaint(const QRegion &rgn)

이 버전은 위젯 내부의 특정 영역 rgn 을 다시 그립니다.

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

void QWidget::repaint(int x, int y, int w, int h)

이 버전은 위젯 내부의 사각형(x, y, w, h)을 다시 그립니다.

w 이 음수인 경우 width() - x 으로 대체되고, h 이 음수인 경우 height() - y 으로 대체됩니다.

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

void QWidget::resize(int w, int h)

이는 resize(QSize(w, h))와 동일합니다.

참고: size 속성에 대한설정자 함수입니다.

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

[virtual protected] void QWidget::resizeEvent(QResizeEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여, ` event ` 매개변수를 통해 전달되는 위젯 크기 조정 이벤트를 수신할 수 있습니다. `resizeEvent()`가 호출될 때, 위젯은 이미 새로운 기하학적 구조를 가지고 있습니다. 이전 크기는 ` QResizeEvent::oldSize()`를 통해 확인할 수 있습니다.

위젯은 크기 조정 이벤트를 처리한 직후 지워지고 페인트 이벤트를 수신합니다. 이 핸들러 내부에서는 그리기 작업을 수행할 필요가 없으며(또는 수행해서는 안 됩니다).

moveEvent(), event(), resize(), QResizeEvent, paintEvent() 및 Scribble 예제도참조하십시오 .

bool QWidget::restoreGeometry(const QByteArray &geometry)

바이트 배열 geometry 에 저장된 최상위 위젯의 형상과 상태를 복원합니다. 성공 시 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

복원된 지오메트리가 화면 밖인 경우, 사용 가능한 화면 지오메트리 내부로 수정됩니다.

QSettings 를 사용하여 저장된 지오메트리를 복원하려면 다음과 같은 코드를 사용할 수 있습니다:

QSettings settings("MyCompany", "MyApp");
myWidget->restoreGeometry(settings.value("myWidget/geometry").toByteArray());

창과 관련된 지오메트리 문제에 대한 개요는 ‘창 지오메트리(Window Geometry )’ 문서를 참조하십시오.

QMainWindow::restoreState()를 사용하여 지오메트리와 툴바 및 도킹 위젯의 상태를 복원하십시오.

saveGeometry(), QSettings, QMainWindow::saveState() 및 QMainWindow::restoreState()도 참조하십시오 .

QByteArray QWidget::saveGeometry() const

최상위 위젯의 현재 지오메트리와 상태를 저장합니다.

창이 닫힐 때 지오메트리를 저장하려면 다음과 같이 close 이벤트를 구현할 수 있습니다:

void MyWidget::closeEvent(QCloseEvent *event)
{
    QSettings settings("MyCompany", "MyApp");
    settings.setValue("geometry", saveGeometry());
    QWidget::closeEvent(event);
}

창의 지오메트리 관련 문제에 대한 개요는 ‘창 지오메트리(Window Geometry )’ 문서를 참조하십시오.

QMainWindow::saveState()을 사용하여 툴바 및 도크 위젯의 기하 구조와 상태를 저장하십시오.

restoreGeometry(), QMainWindow::saveState(), QMainWindow::restoreState()도 참조하십시오 .

QScreen *QWidget::screen() const

위젯이 위치한 화면을 반환합니다.

setScreen() 및 windowHandle()도 참조하십시오 .

void QWidget::scroll(int dx, int dy)

위젯과 그 자식 요소들을 포함하여 dx 픽셀만큼 오른쪽으로, dy 만큼 아래로 스크롤합니다. dx 와 dy 모두 음수 값을 가질 수 있습니다.

스크롤이 완료된 후, 위젯들은 다시 그려져야 하는 영역에 대한 페인트 이벤트를 수신합니다. Qt가 불투명하다고 인식하는 위젯의 경우, 새로 노출된 부분만 해당됩니다. 예를 들어, 불투명한 위젯이 왼쪽으로 8 픽셀 스크롤된 경우, 오른쪽 가장자리에 있는 8 픽셀 너비의 띠 부분만 업데이트하면 됩니다.

위젯은 기본적으로 부모의 내용을 전파하므로, 위젯을 불투명하게 만들려면 ` autoFillBackground ` 속성을 설정하거나 ` setAttribute()`를 사용하여 ` Qt::WA_OpaquePaintEvent ` 속성을 설정해야 합니다.

콘텐츠 전파를 사용하는 위젯의 경우, 스크롤이 발생하면 전체 스크롤 영역이 업데이트됩니다.

Transparency and Double Buffering도 참조하십시오 .

void QWidget::scroll(int dx, int dy, const QRect &r)

이 버전은 r 만 스크롤하며, 위젯의 자식 요소는 이동시키지 않습니다.

r 가 비어 있거나 유효하지 않은 경우, 결과는 정의되지 않습니다.

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

QScrollArea도 참조하십시오 .

void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)

on 가 true인 경우 이 위젯의 attribute 속성을 설정하고, 그렇지 않은 경우 해당 속성을 지웁니다.

testAttribute()도 참조하십시오 .

void QWidget::setBackgroundRole(QPalette::ColorRole role)

위젯의 배경 역할을 ` role`로 설정합니다.

background 역할은 위젯의 palette 에서 배경을 렌더링하는 데 사용되는 브러시를 정의합니다.

role 가 QPalette::NoRole 인 경우, 위젯은 부모의 배경 역할을 상속받습니다.

스타일은 팔레트에서 원하는 색상을 자유롭게 선택할 수 있습니다. setBackgroundRole()을 사용하여 원하는 결과를 얻지 못한 경우, 팔레트를 수정하거나 스타일시트를 설정할 수 있습니다.

backgroundRole() 및 foregroundRole()도 참조하십시오 .

void QWidget::setBaseSize(int basew, int baseh)

이는 setBaseSize(QSize(basew, baseh))와 동일합니다. 위젯의 기본 크기를 너비 basew, 높이 baseh 로 설정합니다.

참고: baseSize 속성에 대한세터 함수입니다.

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

baseSize()도 참조하십시오 .

void QWidget::setContentsMargins(int left, int top, int right, int bottom)

위젯 콘텐츠 주변의 여백 크기를 left, top, right, bottom 로 설정합니다. 이 여백은 레이아웃 시스템에서 사용되며, 하위 클래스에서 그리기 영역(예: 프레임 제외)을 지정하는 데 사용될 수 있습니다.

여백을 변경하면 ` resizeEvent()`가 호출됩니다.

contentsRect() 및 contentsMargins()도 참조하십시오 .

void QWidget::setContentsMargins(const QMargins &margins)

setContentsMargins 함수는 위젯 콘텐츠 주변의 여백을 설정합니다.

위젯 콘텐츠 주변의 여백을 margins 에서 결정된 크기로 설정합니다. 이 여백은 레이아웃 시스템에서 사용되며, 하위 클래스에서 그리기 영역(예: 프레임 제외)을 지정하는 데 사용될 수 있습니다.

여백을 변경하면 resizeEvent()이 호출됩니다.

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

contentsRect() 및 contentsMargins()도 참조하십시오 .

[slot] void QWidget::setDisabled(bool disable)

disable 가 true인 경우 위젯 입력 이벤트를 비활성화하고, 그렇지 않은 경우 입력 이벤트를 활성화합니다.

자세한 내용은 enabled 문서를 참조하십시오.

isEnabledTo(), QKeyEvent, QMouseEvent 및 changeEvent()도 참조하십시오 .

void QWidget::setFixedHeight(int h)

위젯의 너비는 변경하지 않은 채 높이를 최소값과 최대값 모두 h 로 설정합니다. 편의상 제공되는 기능입니다.

sizeHint(), minimumSize(), maximumSize(), setFixedSize()도 참조하십시오 .

void QWidget::setFixedSize(const QSize &s)

위젯의 최소 및 최대 크기를 모두 s 로 설정하여, 위젯이 커지거나 줄어들지 못하도록 합니다.

이렇게 하면 ` QLayout`로 설정된 기본 크기 제약 조건이 재정의됩니다.

제약 조건을 제거하려면 크기를 QWIDGETSIZE_MAX 로 설정하십시오.

또는 위젯이 내용에 따라 고정된 크기를 갖도록 하려면 QLayout::setSizeConstraint(QLayout::SetFixedSize)를 호출할 수 있습니다.

maximumSize 및 minimumSize도 참조하십시오 .

void QWidget::setFixedSize(int w, int h)

위젯의 너비를 w 로, 높이를 h 로 설정합니다.

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

void QWidget::setFixedWidth(int w)

위젯의 높이를 변경하지 않고 너비를 모두 w 로 설정합니다. 편의상 제공됩니다.

sizeHint(), minimumSize(), maximumSize(), setFixedSize()도 참조하십시오 .

void QWidget::setFocus(Qt::FocusReason reason)

이 위젯이나 그 상위 위젯 중 하나가 ‘ active window ’인 경우, 키보드 입력 포커스를 이 위젯(또는 그 포커스 프록시)에 부여합니다. ‘ reason ’ 인수는 이 함수에서 전송되는 모든 포커스 이벤트에 전달되며, 위젯이 포커스를 얻게 된 원인을 설명하는 데 사용됩니다. 창이 비활성 상태인 경우, 창이 활성화되면 위젯에 포커스가 주어집니다.

먼저, 포커스가 변경될 예정이라는 이벤트가 포커스 위젯(있는 경우)으로 전송되어 포커스를 잃게 될 것임을 알립니다. 그런 다음 포커스가 변경되면, 이전 포커스 항목에 포커스 아웃 이벤트가 전송되고, 새로운 항목에는 포커스 인 이벤트가 전송되어 방금 포커스를 받았음을 알립니다. (포커스 인 및 포커스 아웃 위젯이 동일한 경우에는 아무 일도 일어나지 않습니다.)

참고: 임베디드플랫폼에서 setFocus()는 입력 방식에 의해 입력 패널이 열리도록 하지 않습니다. 이를 원한다면, 위젯에 직접 QEvent::RequestSoftwareInputPanel 이벤트를 전송해야 합니다.

setFocus()는 위젯의 포커스 정책과 관계없이 해당 위젯에 포커스를 부여하지만, 키보드 그랩은 해제하지 않습니다( grabKeyboard() 참조).

위젯이 숨겨져 있는 경우, 표시될 때까지 포커스를 받을 수 없다는 점에 유의하십시오.

경고: focusOutEvent() 또는 focusInEvent()에서 호출될 수 있는 함수 내에서 setFocus()를 호출하면 무한 재귀가 발생할 수 있습니다.

hasFocus(), clearFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy(), focusWidget(), QApplication::focusWidget(), grabKeyboard(), grabMouse(), 위젯의 키보드 포커스, QEvent::RequestSoftwareInputPanel도 참조하십시오 .

[slot] void QWidget::setFocus()

이 위젯이나 그 상위 위젯 중 하나가 ‘ active window ’인 경우, 키보드 입력 포커스를 이 위젯(또는 해당 위젯의 포커스 프록시)에 부여합니다.

참고: 이 슬롯은 오버로드되어 있습니다. 이 슬롯에 연결하려면:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        widget, qOverload<>(&QWidget::setFocus));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        widget, [receiver = widget]() { receiver->setFocus(); });
더 많은 예제와 방법에 대해서는 오버로드된 슬롯에 연결하기를 참조하십시오.

void QWidget::setFocusProxy(QWidget *w)

위젯의 포커스 프록시를 w 위젯으로 설정합니다. w 가 nullptr 인 경우, 이 함수는 해당 위젯의 포커스 프록시를 없음으로 재설정합니다.

일부 위젯은 “포커스를 가질” 수 있지만, 실제로 포커스를 처리하기 위해 QLineEdit 와 같은 자식 위젯을 생성하기도 합니다. 이 경우, 해당 위젯은 라인 에디트를 자신의 포커스 프록시로 설정할 수 있습니다.

setFocusProxy()는 “이 위젯”이 포커스를 받을 때 실제로 포커스를 받게 될 위젯을 설정합니다. 포커스 프록시가 있는 경우, setFocus() 및 hasFocus()는 포커스 프록시를 대상으로 작동합니다. “이 위젯”이 포커스 위젯인 경우, setFocusProxy()는 포커스를 새로운 포커스 프록시로 이동시킵니다.

focusProxy()도 참조하십시오 .

void QWidget::setForegroundRole(QPalette::ColorRole role)

위젯의 전경 역할을 role 로 설정합니다.

전경 역할은 위젯의 ' palette '에서 전경을 그리는 데 사용되는 색상을 정의합니다.

role 가 QPalette::NoRole 인 경우, 위젯은 배경 역할과 대비되는 전경 역할을 사용합니다.

스타일은 팔레트에서 원하는 색상을 자유롭게 선택할 수 있습니다. setForegroundRole()을 사용하여 원하는 결과를 얻지 못한 경우, 팔레트를 수정하거나 스타일 시트를 설정할 수 있습니다.

foregroundRole() 및 backgroundRole()도 참조하십시오 .

void QWidget::setGeometry(int x, int y, int w, int h)

이는 setGeometry(QRect(x, y, w, h))에 해당합니다.

참고: geometry 속성에 대한세터 함수입니다.

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

geometry()도 참조하십시오 .

void QWidget::setGraphicsEffect(QGraphicsEffect *effect)

setGraphicsEffect 함수는 위젯의 그래픽 효과를 설정하는 데 사용됩니다.

effect 를 위젯의 효과로 설정합니다. 이 위젯에 이미 효과가 적용되어 있는 경우, QWidget 는 새로운 effect 를 적용하기 전에 기존 효과를 삭제합니다.

effect 가 다른 위젯에 설치된 효과인 경우, setGraphicsEffect()는 해당 위젯에서 효과를 제거하고 이 위젯에 설치합니다. .

QWidget effect 의 소유권을 가져옵니다.

참고: 이 함수는 자체 및 모든 자식 위젯에 이 효과를 적용합니다.

참고: QGLWidget, QOpenGLWidget 및 QQuickWidget 와 같은 OpenGL 기반 위젯에서는Graphical Effects가 지원되지 않습니다.

graphicsEffect()도 참조하십시오 .

[slot] void QWidget::setHidden(bool hidden)

setVisible(!hidden)와 동등한 편의 함수입니다.

isHidden()도 참조하십시오 .

void QWidget::setLayout(QLayout *layout)

이 위젯의 레이아웃 관리자를 ` layout`로 설정합니다.

이 위젯에 이미 레이아웃 관리자가 설정되어 있는 경우, ` QWidget `을 사용하면 다른 레이아웃 관리자를 설정할 수 없습니다. 새로운 레이아웃으로 `setLayout()`을 호출하기 전에 먼저 기존 레이아웃 관리자(` layout()`에서 반환된 것)를 삭제해야 합니다.

layout 가 다른 위젯의 레이아웃 관리자인 경우, setLayout()은 레이아웃의 부모를 변경하여 이를 이 위젯의 레이아웃 관리자로 설정합니다.

예시:

QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(formWidget);
formWidget->setLayout(layout);

이 함수를 호출하는 대신, 이 위젯을 레이아웃의 생성자에 전달할 수도 있습니다.

QWidget 는 layout 의 소유권을 인수합니다.

layout() 및 레이아웃 관리항목도 참조하십시오 .

void QWidget::setMask(const QBitmap &bitmap)

bitmap 에 1 비트가 설정된 위젯의 픽셀만 표시되도록 합니다. 해당 영역에 위젯의 rect() 범위를 벗어난 픽셀이 포함된 경우, 플랫폼에 따라 해당 영역의 윈도우 시스템 컨트롤이 표시될 수도 있고 표시되지 않을 수도 있습니다.

영역이 특히 복잡한 경우 이 효과가 느려질 수 있다는 점에 유의하십시오.

다음 코드는 알파 채널이 있는 이미지를 사용하여 위젯의 마스크를 생성하는 방법을 보여줍니다:

QLabel topLevelLabel;
QPixmap pixmap(":/images/tux.png");
topLevelLabel.setPixmap(pixmap);
topLevelLabel.setMask(pixmap.mask());

이 코드가 표시하는 레이블은 포함된 이미지를 사용하여 마스킹되므로, 불규칙한 모양의 이미지가 화면에 직접 그려지는 것처럼 보입니다.

마스크된 위젯은 보이는 부분에서만 마우스 이벤트를 수신합니다.

mask(), clearMask(), windowOpacity()도 참조하십시오 .

void QWidget::setMask(const QRegion &region)

위젯 중 ‘ region ’ 영역과 겹치는 부분만 표시되도록 합니다. 해당 영역에 위젯의 ‘ rect()’ 범위를 벗어난 픽셀이 포함된 경우, 플랫폼에 따라 해당 영역의 창 시스템 컨트롤이 표시될 수도 있고 표시되지 않을 수도 있습니다.

QRegion 을 사용하면 임의로 복잡한 영역을 생성할 수 있으므로, 위젯 마스크를 통해 가장 비정형적인 모양의 창에도 맞출 수 있을 뿐만 아니라, 위젯에 구멍이 뚫린 상태로 표시하는 것도 가능합니다. 단, 영역이 특히 복잡한 경우 이 처리 속도가 느려질 수 있습니다.

위젯 마스크는 마스크 외부의 영역에 대해 애플리케이션이 마우스 이벤트를 원하지 않음을 윈도우 시스템에 알리는 데 사용됩니다. 대부분의 시스템에서 마스크는 또한 대략적인 시각적 클리핑을 유발합니다. 매끄러운 창 테두리를 얻으려면 ‘반투명 배경’ 예제에서 보여준 것처럼 반투명 배경과 앤티앨리어싱 렌더링을 대신 사용하십시오.

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

windowOpacity도 참조하십시오 .

void QWidget::setMaximumSize(int maxw, int maxh)

이 함수는 setMaximumSize(QSize(maxw, maxh))에 해당합니다. 최대 너비를 maxw 로, 최대 높이를 maxh 로 설정합니다.

참고: maximumSize 속성에 대한세터 함수입니다.

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

maximumSize()도 참조하십시오 .

void QWidget::setMinimumSize(int minw, int minh)

이 함수는 setMinimumSize(QSize(minw, minh))와 동일합니다. 최소 너비를 minw 로, 최소 높이를 minh 로 설정합니다.

참고: minimumSize 속성에 대한세터 함수입니다.

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

minimumSize()도 참조하십시오 .

void QWidget::setParent(QWidget *parent)

위젯의 부모를 parent 로 설정하고, 창 플래그를 초기화합니다. 위젯은 새로운 부모 창 내의 (0, 0) 위치로 이동됩니다.

새로운 부모 위젯이 다른 창에 있는 경우, 부모가 변경된 위젯과 그 자식 위젯들은 이전과 동일한 내부 순서대로 새로운 부모 위젯의 tab chain 끝에 추가됩니다. 이동된 위젯 중 하나에 키보드 포커스가 설정되어 있었다면, setParent()는 해당 위젯에 대해 clearFocus()를 호출합니다.

새로운 부모 위젯이 기존 부모 위젯과 같은 창에 있는 경우, 부모를 설정해도 탭 순서나 키보드 포커스는 변경되지 않습니다.

"새로운" 부모 위젯이 기존 부모 위젯인 경우, 이 함수는 아무 작업도 수행하지 않습니다.

참고: 위젯은 이전에 표시되어 있었더라도 부모가 변경되는 과정에서 보이지 않게 됩니다. 위젯을 다시 표시하려면 show()를 호출해야 합니다.

경고: 이 함수가 필요한 경우는 거의없습니다 . 내용을 동적으로 변경하는 위젯이 있는 경우, QStackedWidget 를 사용하는 것이 훨씬 쉽습니다.

참조: setWindowFlags().

void QWidget::setParent(QWidget *parent, Qt::WindowFlags f)

이 함수는 위젯 플래그인 ` f `도 인수로 받습니다.

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

void QWidget::setScreen(QScreen *screen)

위젯이 표시될 화면을 screen 로 설정합니다.

화면 설정은 창에 대해서만 의미가 있습니다. 필요한 경우, 위젯의 창이 screen 에서 다시 생성됩니다.

참고: 화면이 여러 화면으로 구성된 가상 데스크톱의 일부인경우 , 창은 자동으로 screen 로 이동하지 않습니다. 화면에 상대적인 위치에 창을 배치하려면 화면의 topLeft() 위치를 사용하십시오.

screen() 및 QWindow::setScreen()도 참조하십시오 .

void QWidget::setShortcutAutoRepeat(int id, bool enable = true)

enable 가 true인 경우, 지정된 id 를 사용하는 단축키의 자동 반복 기능이 활성화되며, 그렇지 않은 경우 비활성화됩니다.

grabShortcut() 및 releaseShortcut()도 참조하십시오 .

void QWidget::setShortcutEnabled(int id, bool enable = true)

enable 가 true인 경우, 지정된 id 를 가진 단축키가 활성화되며, 그렇지 않은 경우 단축키는 비활성화됩니다.

경고: Qt의 단축키 시스템은 위젯이 숨겨지거나 표시되고, 포커스를 얻거나 잃을 때 단축키를 자동으로 활성화/비활성화하므로, 일반적으로 이 함수를 사용할필요가 없습니다 . 이 저수준 함수보다 사용하기 쉬운 QAction 또는 QShortcut 를 사용하여 단축키를 처리하는 것이 가장 좋습니다.

grabShortcut() 및 releaseShortcut()도 참조하십시오 .

void QWidget::setSizeIncrement(int w, int h)

x(너비) 크기 증가량을 w 로, y(높이) 크기 증가량을 h 로 설정합니다.

참고: sizeIncrement 속성에 대한세터 함수입니다.

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

sizeIncrement()도 참조하십시오 .

void QWidget::setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)

위젯의 크기 정책을 ‘ horizontal ’ 및 ‘ vertical ’으로 설정하며, 표준 신축 모드를 적용하고 ‘height-for-width’는 사용하지 않습니다.

참고: sizePolicy 속성에 대한세터 함수입니다.

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

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

void QWidget::setStyle(QStyle *style)

위젯의 GUI 스타일을 ` style`로 설정합니다. 스타일 객체의 소유권은 이전되지 않습니다.

스타일이 설정되지 않은 경우, 위젯은 대신 애플리케이션의 스타일인 ` QApplication::style()`을 사용합니다.

위젯의 스타일을 설정해도 기존 또는 향후 생성될 자식 위젯에는 아무런 영향도 미치지 않습니다.

경고: 이 함수는 Qt의 스타일링 기능을 보여주고자 하는 데모 용도로 특히 유용합니다. 실제 애플리케이션에서는 이 함수를 피하고, 대신 일관된 GUI 스타일을 하나 사용해야 합니다.

style(), QStyle, QApplication::style() 및 QApplication::setStyle()도 참조하십시오 .

[static] void QWidget::setTabOrder(QWidget *first, QWidget *second)

포커스 순서에서 ‘ second ’ 위젯을 ‘ first ’ 위젯 뒤에 배치합니다.

이는 효과적으로 second 위젯을 포커스 체인에서 제거하고, first 위젯 뒤에 삽입합니다.

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 d

first 또는 second 에 포커스 프록시가 있는 경우, setTabOrder()는 해당 프록시를 올바르게 대체합니다.

참고: Qt 5.10부터 : 자식 위젯을 포커스 프록시로 갖는 위젯은 복합 위젯으로 간주됩니다. 하나 또는 두 개의 복합 위젯 간에 탭 순서를 설정할 때, 각 위젯 내부의 로컬 탭 순서는 유지됩니다. 즉, 두 위젯 모두 복합 위젯인 경우, 결과적인 탭 순서는 first 내부의 마지막 자식 위젯부터 second 내부의 첫 번째 자식 위젯 순서가 됩니다.

setFocusPolicy(), setFocusProxy() 및 ‘위젯의 키보드 포커스’항목도 참조하십시오 .

[static, since 6.6] void QWidget::setTabOrder(std::initializer_list<QWidget *> widgets)

widgets 목록에 있는 위젯들의 탭 순서를 설정하기 위해, 연속된 위젯 쌍마다 QWidget::setTabOrder(QWidget *, QWidget *)를 호출합니다.

다음과 같이 각 쌍을 수동으로 설정하는 대신:

setTabOrder(a, b); // a to b
setTabOrder(b, c); // a to b to c
setTabOrder(c, d); // a to b to c to d

다음과 같이 호출할 수 있습니다:

setTabOrder({a, b, c, d}); // a to b to c to d

이 호출은 닫힌 탭 포커스 루프를 생성하지 않습니다. ' Qt::TabFocus ' 포커스 정책을 가진 위젯이 더 있는 경우, d 에서 탭 키를 누르면 a 로 돌아가지 않고 해당 위젯 중 하나로 포커스가 이동합니다.

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

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

setFocusPolicy(), setFocusProxy() 및 위젯의 키보드 포커스항목도 참조하십시오 .

void QWidget::setWindowFlag(Qt::WindowType flag, bool on = true)

on 가 true인 경우 이 위젯에 flag 창 플래그를 설정하고, 그렇지 않은 경우 해당 플래그를 해제합니다.

참고: 이 함수는 창의 플래그를 변경할 때 setParent()를 호출하므로, 위젯이 숨겨집니다. 위젯을 다시 표시하려면 show()를 호출해야 합니다.

관련 항목: setWindowFlags(), windowFlags(), windowType().

void QWidget::setWindowRole(const QString &role)

창의 역할을 ` role`로 설정합니다. 이 설정은 X11 환경의 창에서만 의미가 있습니다.

windowRole()도 참조하십시오 .

void QWidget::setWindowState(Qt::WindowStates windowState)

창 상태를 windowState 로 설정합니다. 창 상태는 Qt::WindowState: Qt::WindowMinimized, Qt::WindowMaximized, Qt::WindowFullScreen 및 Qt::WindowActive 의 논리 OR 연산 조합입니다.

창이 보이지 않는 상태(즉, ` isVisible()`가 ` false`를 반환하는 경우)라면, ` show()`가 호출될 때 창 상태가 적용됩니다. 보이는 창의 경우 변경 사항은 즉시 적용됩니다. 예를 들어, 전체 화면 모드와 일반 모드 사이를 전환하려면 다음 코드를 사용하십시오:

w->setWindowState(w->windowState() ^ Qt::WindowFullScreen);

최소화된 창을 복원하고 활성화하려면(최대화 및/또는 전체 화면 상태는 유지한 채로), 다음을 사용하십시오:

w->setWindowState((w->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);

이 함수를 호출하면 위젯이 숨겨집니다. 위젯을 다시 표시하려면 show()를 호출해야 합니다.

참고: 일부 윈도우시스템에서는 ` Qt::WindowActive `이 즉시 적용되지 않을 수 있으며, 특정 경우에는 무시될 수도 있습니다.

창 상태가 변경되면 위젯은 ` QEvent::WindowStateChange` 유형의 ` changeEvent()` 호출을 수신합니다.

Qt::WindowState 및 windowState()도 참조하십시오 .

void QWidget::setupUi(QWidget *widget)

지정된 사용자 인터페이스 설명( widget)에 대한 사용자 인터페이스를 설정합니다.

참고: 이 함수는 uic를 사용하여 생성된 사용자 인터페이스 설명에서 파생된 위젯에서 사용할 수 있습니다.

‘애플리케이션에서 Qt Widgets Designer UI 파일 사용하기’항목도 참조하십시오 .

[slot] void QWidget::show()

위젯과 그 자식 위젯들을 표시합니다.

자식 창의 경우, 이는 setVisible(true)를 호출하는 것과 동일합니다. 그 외의 경우에는, 창의 플래그에 대한 플랫폼의 기본 동작에 따라 showFullScreen(), showMaximized() 또는 setVisible(true)를 호출하는 것과 동일합니다.

raise(), showEvent(), hide(), setVisible(), showMinimized(), showMaximized(), showNormal(), isVisible() 및 windowFlags()도 참조하십시오 .

[virtual protected] void QWidget::showEvent(QShowEvent *event)

이 이벤트 핸들러는 하위 클래스에서 재구현하여 ` event ` 매개변수를 통해 전달되는 위젯 표시 이벤트를 수신할 수 있습니다.

비자발적 표시 이벤트는 위젯이 표시되기 직전에 위젯으로 전송됩니다. 창의 자발적 표시 이벤트는 그 후에 전달됩니다.

참고: 위젯은 창 시스템에 의해 매핑 상태가 변경될 때 자발적인 표시 및 숨김 이벤트를 수신합니다. 예를 들어, 사용자가 창을 최소화하면 자발적인 숨김 이벤트가 발생하고, 창이 다시 복원되면 자발적인 표시 이벤트가 발생합니다. 자발적인 숨김 이벤트를 수신한 후에도 위젯은 isVisible()의 관점에서 여전히 표시된 것으로 간주됩니다.

visible, event() 및 QShowEvent도 참조하십시오 .

[slot] void QWidget::showFullScreen()

위젯을 전체 화면 모드로 표시합니다.

이 함수를 호출하면 windows 에만 영향을 미칩니다.

전체 화면 모드에서 벗어나려면 showNormal() 또는 close()을 호출하십시오.

참고: 전체 화면 모드는 Windows에서는 잘 작동하지만, X 환경에서는 몇 가지 문제가 발생합니다. 이러한 문제는 X11 클라이언트와 창 관리자 간의 통신을 규정하는 ICCCM 프로토콜의 한계로 인해 발생합니다. ICCCM은 테두리가 없는 전체 화면 창의 개념을 지원하지 않습니다. 따라서 가장 좋은 방법은 테두리가 없는 창을 요청한 다음, 전체 화면을 채우도록 창을 배치하고 크기를 조정하는 것입니다. 사용하는 윈도우 매니저에 따라 이 방법이 작동할 수도 있고 그렇지 않을 수도 있습니다. 테두리가 없는 창은 MOTIF 힌트를 사용하여 요청할 수 있으며, 이 힌트는 사실상 모든 최신 윈도우 매니저에서 적어도 부분적으로 지원됩니다.

대안으로는 윈도우 매니저를 완전히 우회하고 ` Qt::X11BypassWindowManagerHint ` 플래그를 사용하여 창을 생성하는 방법이 있습니다. 하지만 이 방법에는 키보드 포커스가 제대로 작동하지 않거나, 데스크톱 변경 시 또는 사용자가 다른 창을 앞으로 가져올 때 매우 이상한 현상이 발생하는 등 다른 심각한 문제가 있습니다.

현대적인 ICCCM 이후 사양을 따르는 X11 윈도우 매니저는 전체 화면 모드를 제대로 지원합니다.

macOS에서 창을 전체 화면으로 표시하면 애플리케이션 전체가 전체 화면 모드로 전환되어 전용 데스크탑이 제공됩니다. 애플리케이션이 전체 화면 모드로 실행 중일 때 다른 창을 표시하면 해당 창도 자동으로 전체 화면으로 전환될 수 있습니다. 이를 방지하려면 다른 창을 표시하기 전에 전체 화면 창에서 ` showNormal()`를 호출하거나 ` close()`를 호출하여 전체 화면 모드를 종료해야 합니다.

showNormal(), showMaximized(), show(), isVisible() 및 close()도 참조하십시오 .

[slot] void QWidget::showMaximized()

위젯을 최대화하여 표시합니다.

이 함수를 호출하면 windows 에만 영향을 미칩니다.

X11 환경에서 이 함수는 특정 윈도우 매니저와 함께 사용할 경우 제대로 작동하지 않을 수 있습니다. 자세한 내용은 Window Geometry 문서를 참조하십시오.

setWindowState(), showNormal(), showMinimized(), show(), hide() 및 isVisible()도 참조하십시오 .

[slot] void QWidget::showMinimized()

위젯을 아이콘 형태로 최소화하여 표시합니다.

이 함수를 호출하면 windows 에만 영향을 미칩니다.

showNormal(), showMaximized(), show(), hide(), isVisible() 및 isMinimized()도 참조하십시오 .

[slot] void QWidget::showNormal()

위젯이 최대화되거나 최소화된 후 원래 상태로 복원합니다.

이 함수를 호출하면 windows 에만 영향을 미칩니다.

setWindowState(), showMinimized(), showMaximized(), show(), hide() 및 isVisible()도 참조하십시오 .

void QWidget::stackUnder(QWidget *w)

위젯을 부모 위젯의 스택 내 ‘ w ’ 아래에 배치합니다.

이 기능이 작동하려면 위젯 자체와 ` w `가 형제 요소여야 합니다.

raise() 및 lower()도 참조하십시오 .

QStyle *QWidget::style() const

QWidget::setStyle(), QApplication::setStyle(), QApplication::style()도 참조하십시오 .

[virtual protected] void QWidget::tabletEvent(QTabletEvent *event)

event 이벤트에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 위젯에 대한 태블릿 이벤트를 수신할 수 있습니다.

이 핸들러를 재구현할 경우, 이벤트를 처리하지 않을 때는 반드시 ` ignore() `를 호출하여 위젯의 부모가 해당 이벤트를 해석할 수 있도록 해야 합니다.

기본 구현은 이 이벤트를 무시합니다.

태블릿 추적 기능이 꺼져 있는 경우, 태블릿 이동 이벤트는 스타일러스가 태블릿에 닿아 있거나 스타일러스를 이동하는 동안 적어도 하나의 스타일러스 버튼이 눌려 있을 때만 발생합니다. 태블릿 추적 기능이 켜져 있는 경우, 버튼을 누르지 않은 상태에서 스타일러스가 태블릿 근처에 떠 있는 동안에도 태블릿 이동 이벤트가 발생합니다.

QEvent::ignore(), QEvent::accept(), event(), setTabletTracking() 및 QTabletEvent도 참조하십시오 .

bool QWidget::testAttribute(Qt::WidgetAttribute attribute) const

이 위젯에 attribute 속성이 설정되어 있으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

setAttribute()도 참조하십시오 .

bool QWidget::underMouse() const

위젯이 마우스 커서 아래에 있으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.

드래그 앤 드롭 작업 중에는 이 값이 제대로 업데이트되지 않습니다.

enterEvent() 및 leaveEvent()도 참조하십시오 .

void QWidget::ungrabGesture(Qt::GestureType gesture)

지정된 gesture 유형의 위젯 구독을 취소합니다.

grabGesture() 및 QGestureEvent도 참조하십시오 .

[slot] void QWidget::update()

업데이트가 비활성화되어 있거나 위젯이 숨겨져 있지 않은 경우, 위젯을 업데이트합니다.

이 함수는 즉시 다시 그리기를 유발하지 않으며, 대신 Qt가 메인 이벤트 루프로 돌아왔을 때 처리될 그리기 이벤트를 예약합니다. 이를 통해 Qt는 ` repaint()`를 호출하는 것보다 더 빠른 속도와 더 적은 깜빡임을 위해 최적화할 수 있습니다.

update()를 여러 번 호출해도 일반적으로 paintEvent() 호출은 한 번만 발생합니다.

Qt는 일반적으로 paintEvent() 호출 전에 위젯 영역을 지웁니다. Qt::WA_OpaquePaintEvent 위젯 속성이 설정된 경우, 위젯은 모든 픽셀을 불투명한 색상으로 채우는 역할을 담당합니다.

참고: 이 슬롯은 오버로드되어 있습니다. 이 슬롯에 연결하려면:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        widget, qOverload<>(&QWidget::update));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        widget, [receiver = widget]() { receiver->update(); });
더 많은 예제와 방법에 대해서는 오버로드된 슬롯에 연결하기를 참조하십시오.

참조: repaint(), paintEvent(), setUpdatesEnabled() 및 아날로그 시계.

void QWidget::update(const QRect &rect)

이 버전은 위젯 내부의 사각형 rect 을 업데이트합니다.

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

void QWidget::update(const QRegion &rgn)

이 버전은 위젯 내부의 영역 rgn 을 다시 그립니다.

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

void QWidget::update(int x, int y, int w, int h)

이 버전은 위젯 내부의 사각형(x, y, w, h)을 업데이트합니다.

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

void QWidget::updateGeometry()

이 위젯이 변경되었으며 기하학적 구조가 변경되어야 할 수도 있음을 레이아웃 시스템에 알립니다.

sizeHint() 또는 sizePolicy()의 값이 변경된 경우 이 함수를 호출하십시오.

명시적으로 숨겨진 위젯의 경우, updateGeometry()는 아무런 작업도 수행하지 않습니다. 위젯이 표시되는 즉시 레이아웃 시스템에 알림이 전달됩니다.

[protected slot] void QWidget::updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll)

위젯의 마이크로 포커스를 업데이트하고, ` query `로 지정된 상태가 변경되었음을 입력 방식에 알립니다.

QRegion QWidget::visibleRegion() const

페인트 이벤트가 발생할 수 있는 가려지지 않은 영역을 반환합니다.

표시된 위젯의 경우, 이는 다른 위젯에 가려지지 않은 영역을 대략적으로 나타낸 것이며, 그렇지 않은 경우 빈 영역을 반환합니다.

repaint() 함수는 필요한 경우 이 함수를 호출하므로, 일반적으로 이 함수를 직접 호출할 필요는 없습니다.

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

event 이벤트에 대한 이 이벤트 핸들러는 하위 클래스에서 재구현하여 위젯의 휠 이벤트를 수신할 수 있습니다.

이 핸들러를 재구현할 경우, 이벤트를 처리하지 않을 때는 ignore() 를 호출하여 위젯의 부모가 해당 이벤트를 해석할 수 있도록 하는 것이 매우 중요합니다.

기본 구현은 이 이벤트를 무시합니다.

QEvent::ignore(), QEvent::accept(), event() 및 QWheelEvent도 참조하십시오 .

WId QWidget::winId() const

위젯의 윈도우 시스템 식별자를 반환합니다.

원칙적으로는 이식성이 보장되지만, 이 함수를 사용한다면 이식성이 보장되지 않는 작업을 수행하려는 것일 가능성이 높습니다. 주의하십시오.

위젯이 비네이티브(외부)인 경우 winId()가 호출되면, 해당 위젯에는 네이티브 핸들이 제공됩니다.

이 값은 런타임 중에 변경될 수 있습니다. 윈도우 시스템 식별자가 변경되면 ` QEvent::WinIdChange ` 유형의 이벤트가 해당 위젯으로 전송됩니다.

find()도 참조하십시오 .

QWidget *QWidget::window() const

이 위젯에 해당하는 창, 즉 윈도우 시스템 프레임을 가지고 있거나 가질 수 있는 가장 가까운 상위 위젯을 반환합니다.

위젯이 창인 경우, 위젯 자체가 반환됩니다.

일반적인 사용 예는 창 제목을 변경하는 것입니다:

aWidget->window()->setWindowTitle("New Window Title");

isWindow()도 참조하십시오 .

QWindow *QWidget::windowHandle() const

이 위젯이 네이티브 위젯인 경우, 관련 QWindow 를 반환합니다. 그렇지 않은 경우 null을 반환합니다.

네이티브 위젯에는 최상위 위젯, QGLWidget 및 winId()이 호출된 자식 위젯이 포함됩니다.

winId() 및 screen()도 참조하십시오 .

[signal] void QWidget::windowIconChanged(const QIcon &icon)

이 신호는 창의 아이콘이 변경되었을 때 발생하며, 새로운 icon 가 인자로 전달됩니다.

참고: 속성 windowIcon 에 대한알림 신호입니다.

QString QWidget::windowRole() const

창의 역할을 반환하거나, 빈 문자열을 반환합니다.

setWindowRole(), windowIcon 및 windowTitle도 참조하십시오 .

Qt::WindowStates QWidget::windowState() const

현재 창 상태를 반환합니다. 창 상태는 Qt::WindowState: Qt::WindowMinimized, Qt::WindowMaximized, Qt::WindowFullScreen 및 Qt::WindowActive 의 논리 OR 연산으로 결합된 결과입니다.

Qt::WindowState 및 setWindowState()도 참조하십시오 .

[signal] void QWidget::windowTitleChanged(const QString &title)

이 신호는 창의 제목이 변경되었을 때 발생하며, 새로운 title 를 인수로 전달합니다.

참고: 속성 windowTitle 에 대한알림 신호입니다.

Qt::WindowType QWidget::windowType() const

이 위젯의 창 유형을 반환합니다. 이는 windowFlags() 및 Qt::WindowType_Mask 와 동일합니다.

windowFlags도 참조하십시오 .

매크로 설명서

QWIDGETSIZE_MAX

QWidget 객체의 최대 크기를 정의합니다.

위젯의 허용되는 최대 크기는 QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX), 즉 QSize (16777215, 16777215)입니다.

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

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