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 accessibleName() const
QList<QAction *> actions() const
void activateWindow()
void addAction(QAction * 액션)
(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 *childAt(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 *focusWidget() 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 hasEditFocus() const
bool hasFocus() const
가상 불 hasHeightForWidth() const
bool hasMouseTracking() const
bool hasTabletTracking() const
int height() const
가상 int heightForWidth(int w) const
Qt::InputMethodHints inputMethodHints() const
가상 QVariant inputMethodQuery(Qt::InputMethodQuery 쿼리) 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 *조상) const
bool isFullScreen() const
bool isHidden() const
bool isMaximized() const
bool isMinimized() const
bool isModal() const
bool isVisible() const
bool isVisibleTo(const QWidget * 조상) 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 *부모, 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 *부모, 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(const QPoint &)
void move(int x, int y)
QWidget *nativeParentWidget() const
QWidget *nextInFocusChain() const
QRect normalGeometry() const
void overrideWindowFlags(Qt::WindowFlags 플래그)
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(const QSize &)
void resize(int w, int h)
bool restoreGeometry(const QByteArray &지오메트리)
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 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 왼쪽, int , int 오른쪽, int 아래)
void setContentsMargins(const QMargins &마진)
void setContextMenuPolicy(Qt::ContextMenuPolicy 정책)
void setCursor(const QCursor &)
void setEditFocus(bool enable)
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 역할)
void setGeometry(const QRect &)
void setGeometry(int x, int y, int w, int h)
void setGraphicsEffect(QGraphicsEffect * 효과)
void setInputMethodHints(Qt::InputMethodHints 힌트)
void setLayout(QLayout *layout)
void setLayoutDirection(Qt::LayoutDirection 방향)
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 *부모)
void setParent(QWidget *parent, Qt::WindowFlags f)
void setScreen(QScreen * 스크린)
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(QSizeP정책::정책 가로, QSizeP정책::정책 세로)
void setStatusTip(const QString &)
void setStyle(QStyle * 스타일)
void setTabletTracking(bool enable)
void setToolTip(const QString &)
void setToolTipDuration(int msec)
void setUpdatesEnabled(bool enable)
void setWhatsThis(const QString &)
void setWindowFilePath(const QString &파일 경로)
void setWindowFlag(Qt::WindowType 플래그, 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::위젯 어트리뷰트 속성) 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)

재구현된 보호 함수

가상 불 event(QEvent * 이벤트) 오버라이드
가상 void initPainter(QPainter *painter) const 오버라이드
가상 int metric(QPaintDevice::PaintDeviceMetric m) const override

보호된 슬롯

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

매크로

상세 설명

위젯은 사용자 인터페이스의 원자이며, 창 시스템에서 마우스, 키보드 및 기타 이벤트를 수신하여 화면에 자신의 모습을 그립니다. 모든 위젯은 직사각형이며 Z 순서로 정렬됩니다. 위젯은 부모 위젯과 그 앞에 있는 위젯에 의해 잘립니다.

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

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

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

QWidget에는 많은 멤버 함수가 있지만 일부는 직접적인 기능이 거의 없습니다(예: QWidget에는 글꼴 속성이 있지만 이 자체는 사용하지 않습니다). QLabel , QPushButton, QListWidget, QTabWidget 과 같이 실제 기능을 제공하는 서브 클래스가 많이 있습니다.

최상위 및 자식 위젯

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

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

A parent widget containing various child widgets.

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

QWidget을 사용하여 자식 위젯을 보유하려면 일반적으로 부모 QWidget에 레이아웃을 추가해야 합니다. 자세한 내용은 레이아웃 관리를 참조하세요.

복합 위젯

위젯이 여러 개의 자식 위젯을 그룹화하는 컨테이너로 사용되는 경우 이를 복합 위젯이라고 합니다. 복합 위젯은 필요한 시각적 속성을 가진 위젯(예: QFrame)을 구성하고 여기에 일반적으로 레이아웃으로 관리되는 자식 위젯을 추가하여 만들 수 있습니다.

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

사용자 정의 위젯과 페인팅

QWidget은 QPaintDevice 의 서브클래스이므로, QPainter 클래스의 인스턴스와 함께 일련의 페인팅 연산을 사용하여 구성된 사용자 정의 콘텐츠를 표시하는 데 서브클래스를 사용할 수 있습니다. 이 접근 방식은 애플리케이션에 의해 항목이 장면에 추가되고 프레임워크 자체에서 렌더링되는 그래픽 뷰 프레임워크에서 사용하는 캔버스 스타일 접근 방식과 대조됩니다.

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

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

크기 힌트 및 크기 정책

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

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

크기 정책을 사용하면 레이아웃 관리 시스템에 적합한 기본 동작을 제공하여 다른 위젯이 내 위젯을 쉽게 포함하고 관리할 수 있도록 할 수 있습니다. 기본 크기 정책은 크기 힌트가 위젯의 기본 크기를 나타내며, 많은 위젯에 이 정도면 충분합니다.

참고: 최상위 위젯의 크기는 바탕화면 높이와 너비의 2/3로 제한됩니다. 이 제한이 적절하지 않은 경우 위젯을 수동으로 resize()할 수 있습니다.

이벤트

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

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

Scribble 예제에서는 마우스 움직임, 버튼 누르기, 창 크기 조정 등을 처리하기 위해 더 광범위한 이벤트 세트를 구현합니다.

자체 위젯에 대한 동작과 콘텐츠를 제공해야 하지만 다음은 가장 일반적인 이벤트부터 시작하여 QWidget과 관련된 이벤트에 대한 간략한 개요입니다:

  • paintEvent()는 위젯을 다시 칠해야 할 때마다 호출됩니다. 사용자 지정 콘텐츠를 표시하는 모든 위젯은 이를 구현해야 합니다. paintEvent () 또는 paintEvent()가 호출하는 함수에서만 QPainter 를 사용하여 페인팅할 수 있습니다.
  • resizeEvent()는 위젯의 크기가 조정될 때 호출됩니다.
  • mousePressEvent()는 마우스 커서가 위젯 안에 있는 상태에서 마우스 버튼을 누르거나 위젯이 grabMouse()를 사용하여 마우스를 잡았을 때 호출됩니다. 마우스를 놓지 않고 누르는 것은 grabMouse()를 호출하는 것과 사실상 동일합니다.
  • mouseReleaseEvent()는 마우스 버튼이 해제될 때 호출됩니다. 위젯은 해당 마우스 누르기 이벤트를 수신하면 마우스 릴리스 이벤트를 받습니다. 즉, 사용자가 위젯 안에서 마우스를 누른 다음 마우스 버튼을 놓기 전에 다른 곳으로 마우스를 드래그하면 위젯이 마우스 해제 이벤트를 수신합니다. 한 가지 예외가 있습니다. 마우스 버튼을 누르고 있는 동안 팝업 메뉴가 나타나면 이 팝업은 즉시 마우스 이벤트를 훔칩니다.
  • mouseDoubleClickEvent()는 사용자가 위젯을 더블클릭할 때 호출됩니다. 사용자가 더블클릭하면 위젯은 마우스 누르기 이벤트, 마우스 놓기 이벤트, (마우스 클릭 이벤트,) 두 번째 마우스 누르기 이벤트, 이 이벤트, 마지막으로 두 번째 마우스 놓기 이벤트를 수신합니다. (이 작업 중에 마우스를 안정적으로 유지하지 않으면 일부 마우스 이동 이벤트도 수신될 수 있습니다.) 두 번째 클릭이 발생하기 전까지는 클릭과 더블 클릭을 구분할 없습니다. (이것이 대부분의 GUI 책에서 더블 클릭을 다른 동작을 트리거하지 않고 단일 클릭의 연장선으로 사용하도록 권장하는 이유 중 하나입니다.)

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

  • keyPressEvent()는 키를 누를 때마다 호출되고, 키가 자동 반복될 만큼 충분히 길게 누르고 있을 때 다시 호출됩니다. TabShift+Tab 키는 포커스 변경 메커니즘에 의해 사용되지 않는 경우에만 위젯에 전달됩니다. 위젯에서 이러한 키를 강제로 처리하려면 QWidget::event()를 다시 구현해야 합니다.
  • focusInEvent()는 위젯이 키보드 포커스를 확보할 때 호출됩니다( setFocusPolicy()를 호출했다고 가정할 때). 잘 동작하는 위젯은 키보드 포커스를 명확하지만 신중하게 소유하고 있음을 나타냅니다.
  • focusOutEvent()는 위젯이 키보드 포커스를 잃을 때 호출됩니다.

덜 일반적인 이벤트 핸들러 중 일부를 다시 구현해야 할 수도 있습니다:

  • mouseMoveEvent()는 마우스 버튼을 누른 상태에서 마우스가 움직일 때마다 호출됩니다. 이는 드래그 앤 드롭 작업 중에 유용할 수 있습니다. setMouseTracking (true)를 호출하면 아무 버튼도 누르고 있지 않아도 마우스 이동 이벤트가 발생합니다. ( 드래그 앤 드롭 가이드도 참조하세요.)
  • keyReleaseEvent()는 키를 놓을 때마다 그리고 키를 누르고 있는 동안(키가 자동 반복되는 경우) 호출됩니다. 이 경우 위젯은 반복할 때마다 한 쌍의 키 놓기 및 키 누르기 이벤트를 수신합니다. TabShift+Tab 키는 포커스 변경 메커니즘에서 사용하지 않는 경우에만 위젯에 전달됩니다. 위젯에서 이러한 키를 강제로 처리하려면 QWidget::event()를 다시 구현해야 합니다.
  • wheelEvent()는 위젯에 포커스가 있는 동안 사용자가 마우스 휠을 돌릴 때마다 호출됩니다.
  • enterEvent()는 마우스가 위젯의 화면 공간에 들어갈 때 호출됩니다. (위젯의 하위 위젯이 소유한 화면 공간은 제외됩니다.)
  • leaveEvent()는 마우스가 위젯의 화면 공간을 벗어날 때 호출됩니다. 마우스가 자식 위젯에 들어가면 leaveEvent()가 발생하지 않습니다.
  • moveEvent()는 위젯이 부모 위젯을 기준으로 이동했을 때 호출됩니다.
  • closeEvent()는 사용자가 위젯을 닫을 때(또는 close()가 호출될 때) 호출됩니다.

QEvent::Type 에 대한 문서에 설명된 다소 모호한 이벤트도 있습니다. 이러한 이벤트를 처리하려면 event()를 직접 다시 구현해야 합니다.

event()의 기본 구현은 TabShift+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()
모드visible, isVisibleTo(), enabled, isEnabledTo(), modal, isWindow(), mouseTracking, updatesEnabled, visibleRegion().
룩앤필style(), setStyle(), 스타일시트, 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()

위젯 스타일 시트

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

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

투명도 및 이중 버퍼링

QWidget은 그림에 자동으로 더블 버퍼링을 적용하므로 깜박임을 방지하기 위해 paintEvent()에 더블 버퍼링 코드를 작성할 필요가 없습니다.

부모 위젯의 콘텐츠는 Qt::WA_PaintOnScreen 을 설정하지 않는 한 기본적으로 각 자식 위젯에 전파됩니다. 사용자 정의 위젯을 작성하여 불규칙한 영역을 업데이트하거나(직사각형이 아닌 자식 위젯을 만들기 위해) 전체 알파 성분보다 낮은 색상으로 페인팅하여 이 기능을 활용할 수 있습니다. 다음 다이어그램은 사용자 지정 위젯의 속성과 속성을 미세 조정하여 다양한 효과를 얻는 방법을 보여줍니다.

위 다이어그램에서는 영역이 제거된 반투명 직사각형 자식 위젯을 만들어 부모 위젯( QLabel 에 픽셀맵을 표시)에 추가합니다. 그런 다음 다른 프로퍼티와 위젯 속성을 설정하여 다른 효과를 얻습니다:

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

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

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

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

부모 위젯의 내용도 표준 Qt 위젯으로 전파됩니다. 아래 그림과 같이 부모 위젯이 비표준 방식으로 장식된 경우 예기치 않은 결과가 발생할 수 있습니다.

서브 클래싱에 의존하지 않고 표준 Qt 위젯의 그리기 동작을 사용자 정의할 수 있는 범위는 사용자 정의 위젯에서 가능한 범위보다 약간 적습니다. 일반적으로 표준 위젯의 원하는 모양은 autoFillBackground 속성을 설정하여 얻을 수 있습니다.

반투명 창 만들기

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

최상위 위젯에서 이 기능을 사용하려면 Qt::WA_TranslucentBackground 속성을 setAttribute()로 설정하고 부분적으로 투명하게 하려는 영역의 배경이 불투명하지 않은 색상으로 칠해져 있는지 확인합니다.

플랫폼 참고 사항:

  • X11: 이 기능은 ARGB 비주얼을 지원하는 X 서버와 합성 창 관리자를 사용해야 합니다.
  • 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참조하세요 .

멤버 유형 문서

열거형 QWidget::렌더플래그
플래그 QWidget::렌더플래그

이 열거형은 QWidget::render() 호출 시 위젯을 렌더링하는 방법을 설명합니다.

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

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

속성 문서

acceptDrops : bool

이 속성은 이 위젯에 대한 드롭 이벤트 활성화 여부를 보유합니다.

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

위젯이 데스크톱인 경우(windowType() == Qt::Desktop), 다른 애플리케이션이 데스크톱을 사용 중이면 실패할 수 있으므로 acceptDrops()를 호출하여 이러한 상황이 발생하는지 테스트할 수 있습니다.

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

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

함수에 액세스합니다:

bool acceptDrops() const
void setAcceptDrops(bool on)

드래그 앤 드롭을참조하세요 .

accessibleDescription : QString

이 속성에는 보조 기술이 볼 수 있는 위젯의 설명이 저장됩니다.

위젯의 접근 가능한 설명은 위젯의 기능을 전달해야 합니다. accessibleName 은 짧고 간결한 문자열(예: 저장)이어야 하지만, 설명은 현재 문서를 저장합니다와 같이 더 많은 컨텍스트를 제공해야 합니다.

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

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

액세스 함수:

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

QWidget::accessibleNameQAccessibleInterface::text()도 참조하세요 .

accessibleName : QString

이 속성은 보조 기술에 표시되는 위젯의 이름을 저장합니다.

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

위젯이 텍스트를 제공하지 않는 경우 이 속성을 설정하는 것이 중요합니다. 예를 들어 아이콘만 포함된 버튼의 경우 화면 리더에서 작동하려면 이 속성을 설정해야 합니다. 이름은 짧고 위젯이 전달하는 시각적 정보와 동일해야 합니다.

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

기본적으로 이 속성에는 빈 문자열이 포함됩니다.

함수 액세스:

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

QWidget::accessibleDescriptionQAccessibleInterface::text()도 참조하세요 .

autoFillBackground : bool

이 속성은 위젯 배경이 자동으로 채워질지 여부를 보유합니다.

이 프로퍼티를 활성화하면 Qt가 페인트 이벤트를 호출하기 전에 위젯의 배경을 채우도록 합니다. 사용되는 색은 위젯의 paletteQPalette::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 : const QRect

이 속성은 위젯의 자식의 경계 사각형을 보유합니다.

숨겨진 자식은 제외됩니다.

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

함수에 액세스합니다:

QRect childrenRect() const

childrenRegion() 및 geometry()도 참조하세요 .

[read-only] childrenRegion : const 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 는 예외입니다.

일부 위젯은 비활성화하면 다르게 표시됩니다. 예를 들어 버튼의 레이블이 회색으로 표시될 수 있습니다. 위젯이 언제 활성화 또는 비활성화되는지 알아야 하는 경우 changeEvent() 유형과 함께 QEvent::EnabledChange 을 사용하면 됩니다.

위젯을 비활성화하면 모든 하위 위젯이 암시적으로 비활성화됩니다. 각각 활성화하면 명시적으로 비활성화하지 않는 한 모든 자식 위젯이 활성화됩니다. 부모 위젯이 비활성화되어 있는 동안 창이 아닌 자식 위젯을 명시적으로 활성화할 수는 없습니다.

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

함수에 액세스합니다:

bool isEnabled() const
void setEnabled(bool)

isEnabledTo(), QKeyEvent, QMouseEvent, changeEvent()도 참조하세요 .

[read-only] focus : const 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 위젯의 콘텐츠를 렌더링하는 데 사용되는 현재 스타일은 위젯 폰트를 사용하거나 경우에 따라서는 (부분적으로 또는 완전히) 무시하도록 자유롭게 선택할 수 있습니다. 특히 GTK 스타일, Mac 스타일, Windows Vista 스타일과 같은 특정 스타일은 플랫폼의 기본 모양과 느낌에 맞게 위젯 글꼴에 특별한 수정을 적용합니다. 따라서 위젯 글꼴에 속성을 할당한다고 해서 위젯의 모양이 변경되는 것은 아닙니다. 대신 스타일시트를 적용하도록 선택할 수 있습니다.

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

함수에 액세스합니다:

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

fontInfo() 및 fontMetrics()도 참조하세요 .

[read-only] frameGeometry : const QRect

창 프레임을 포함한 부모를 기준으로 한 위젯의 지오메트리입니다.

창 관련 지오메트리 문제에 대한 개요는 창 지오메트리 문서를 참조하세요.

기본적으로 이 속성에는 사용자의 플랫폼과 화면 지오메트리에 따라 달라지는 값이 포함됩니다.

함수 액세스:

QRect frameGeometry() const

geometry(), x(), y() 및 pos()도 참조하세요 .

[read-only] frameSize : const QSize

이 속성은 창 프레임을 포함한 위젯의 크기를 보유합니다.

기본적으로 이 속성에는 사용자의 플랫폼과 화면 지오메트리에 따라 달라지는 값이 포함됩니다.

액세스 함수:

QSize frameSize() const

[read-only] fullScreen : const bool

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

전체 화면 모드의 위젯은 전체 화면 영역을 차지하며 제목 표시줄과 같은 창 장식을 표시하지 않습니다.

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

기능에 접근합니다:

bool isFullScreen() const

windowState(), minimized, maximized참조하세요 .

geometry : QRect

이 속성은 창 프레임을 제외한 부모를 기준으로 위젯의 지오메트리를 보유합니다.

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

크기 컴포넌트는 minimumSize() 및 maximumSize()에 정의된 범위를 벗어나면 조정됩니다.

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

창과 관련된 지오메트리 문제에 대한 개요는 창 지오메트리 문서를 참조하세요.

기본적으로 이 속성에는 사용자의 플랫폼 및 화면 지오메트리에 따라 달라지는 값이 포함됩니다.

액세스 함수:

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 : const int

이 프로퍼티는 창 프레임을 제외한 위젯의 높이를 보유합니다.

윈도우의 지오메트리 문제에 대한 개요는 윈도우 지오메트리 문서를 참조하세요.

기본적으로 이 속성에는 사용자의 플랫폼과 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 : const 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()

QLocaleQLocale::setDefault()도 참조하세요 .

[read-only] maximized : const 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)

maximumSizemaximumWidth참조하세요 .

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)

maximumSizemaximumHeight참조하세요 .

[read-only] minimized : const bool

이 속성은 이 위젯의 최소화(아이콘화) 여부를 보유합니다.

이 속성은 윈도우에만 해당됩니다.

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

함수에 액세스합니다:

bool isMinimized() const

showMinimized(), visible, show(), hide(), showNormal() 및 maximized참조하세요 .

minimumHeight : int

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

이 속성은 minimumSize 속성이 보유한 높이에 해당합니다.

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

함수에 액세스합니다:

int minimumHeight() const
void setMinimumHeight(int minh)

minimumSizeminimumWidth참조하세요 .

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 : const QSize

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

이 속성의 값이 잘못된 크기인 경우 최소 크기는 권장되지 않습니다.

최소 크기 힌트()의 기본 구현은 이 위젯에 대한 레이아웃이 없는 경우 잘못된 크기를 반환하고, 그렇지 않은 경우 레이아웃의 최소 크기를 반환합니다. 대부분의 내장 위젯은 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)

minimumSizeminimumHeight참조하세요 .

이 속성은 위젯이 모달 위젯인지 여부를 보유합니다.

이 속성은 창에서만 의미가 있습니다. 모달 위젯은 다른 모든 창의 위젯이 입력을 받지 못하도록 합니다.

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

함수에 액세스합니다:

bool isModal() const

isWindow(), windowModality, QDialog참조하세요 .

mouseTracking : bool

이 속성은 위젯에 마우스 트래킹이 활성화되어 있는지 여부를 보유합니다.

마우스 추적이 비활성화되어 있으면(기본값), 위젯은 마우스를 움직이는 동안 마우스 버튼이 하나 이상 눌릴 때만 마우스 이동 이벤트를 수신합니다.

마우스 추적이 활성화된 경우 위젯은 버튼을 누르지 않아도 마우스 이동 이벤트를 수신합니다.

액세스 기능:

bool hasMouseTracking() const
void setMouseTracking(bool enable)

mouseMoveEvent()도 참조하세요 .

[read-only] normalGeometry : const 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 위젯의 내용을 렌더링하는 데 사용되는 현재 스타일은 위젯 팔레트에서 자유롭게 색상과 브러시를 선택하거나 경우에 따라 팔레트를 (부분적으로 또는 완전히) 무시할 수 있습니다. 특히 GTK 스타일, Mac 스타일, Windows Vista 스타일과 같은 특정 스타일은 위젯의 콘텐츠를 렌더링하기 위해 타사 API에 의존하며, 이러한 스타일은 일반적으로 팔레트를 따르지 않습니다. 따라서 위젯의 팔레트에 역할을 할당해도 위젯의 모양이 변경되지는 않습니다. 대신 스타일시트를 적용하도록 선택할 수 있습니다.

경고: 이 함수를 Qt 스타일 시트와 함께 사용하지 마십시오. 스타일 시트를 사용할 때 위젯의 팔레트는 "색상", "배경색", "선택색", "선택-배경색" 및 "대체 배경색"을 사용하여 사용자 지정할 수 있습니다.

기능에 액세스합니다:

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 : const QRect

이 속성은 창 프레임을 제외한 위젯의 내부 지오메트리를 보유합니다.

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

창과 관련된 지오메트리 문제에 대한 개요는 창 지오메트리 문서를 참조하세요.

기본적으로 이 속성에는 사용자의 플랫폼 및 화면 지오메트리에 따라 달라지는 값이 포함됩니다.

액세스 함수:

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 : const QSize

이 속성은 위젯의 권장 크기를 저장합니다.

이 속성의 값이 잘못된 크기인 경우 권장되는 크기가 없습니다.

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

함수에 액세스합니다:

virtual QSize sizeHint() const

QSize::isValid(), minimumSizeHint(), sizePolicy(), setMinimumSize() 및 updateGeometry()도 참조하세요 .

sizeIncrement : QSize

이 속성은 위젯의 크기 증분을 보유합니다.

사용자가 창 크기를 조정할 때 크기는 baseSize()를 기준으로 가로로 sizeIncrement().width() 픽셀, 세로로 sizeIncrement.height() 픽셀 단위로 이동합니다. 기본 위젯 크기는 음수가 아닌 정수 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 이 없는 경우 이 함수의 결과가 사용됩니다.

기본 정책은 기본값/기본값으로, 위젯의 크기를 자유롭게 조정할 수 있지만 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 &)

toolTipwhatsThis참조하세요 .

styleSheet : QString

이 프로퍼티에는 위젯의 스타일 시트가 저장됩니다.

스타일 시트에는 위젯의 스타일에 대한 커스터마이징에 대한 텍스트 설명이 포함되어 있으며, Qt 스타일 시트 문서에 설명되어 있습니다.

Qt 4.5부터 Qt 스타일 시트는 macOS를 완벽하게 지원합니다.

경고: Qt 스타일 시트는 현재 사용자 정의 QStyle 서브클래스에 대해 지원되지 않습니다. 향후 릴리스에서 이 문제를 해결할 계획입니다.

액세스 함수:

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

setStyle(), QApplication::styleSheet, 및 Qt 스타일 시트를참조하십시오 .

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에서 위젯은 일반적으로 화면 깜박임을 생성하지 않지만, 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()를 호출하면 위젯이 명시적으로 숨겨집니다. 명시적으로 숨겨진 위젯은 사용자가 표시하지 않는 한 모든 조상 위젯이 표시되더라도 절대 표시되지 않습니다.

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

화면의 다른 창에 가려진 위젯은 표시되는 것으로 간주됩니다. 아이콘화된 창과 다른 가상 데스크톱에 존재하는 창(이 개념을 지원하는 플랫폼에서)에도 동일하게 적용됩니다. 위젯은 창 시스템에 의해 매핑 상태가 변경될 때 자발적인 표시 및 숨기기 이벤트를 받습니다(예: 사용자가 창을 최소화하면 자발적인 숨기기 이벤트가 발생하고 창이 다시 복원되면 자발적인 표시 이벤트가 발생).

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

함수에 액세스하기:

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

show(), hide(), isHidden(), isVisibleTo(), isMinimized(), showEvent(), hideEvent()도 참조하세요 .

whatsThis : QString

이 속성에는 위젯의 What's This 도움말 텍스트가 저장됩니다.

기본적으로 이 속성에는 빈 문자열이 포함됩니다.

함수에 액세스합니다:

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

QWhatsThis, QWidget::toolTip, QWidget::statusTip참조하세요 .

[read-only] width : const int

이 프로퍼티는 창 프레임을 제외한 위젯의 너비를 보유합니다.

창의 지오메트리 문제에 대한 개요는 창 지오메트리 문서를 참조하세요.

참고: 이 함수를 사용하여 멀티스크린 데스크톱에서 화면의 너비를 찾지 마세요. 자세한 내용은 QScreen 을 참조하세요.

기본적으로 이 속성에는 사용자의 플랫폼 및 화면 지오메트리에 따라 달라지는 값이 포함되어 있습니다.

함수 액세스:

int width() const

geometry, height, 및 size참조하세요 .

windowFilePath : QString

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

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

창 제목이 설정되어 있으면 파일 경로 문자열 대신 창 제목이 우선적으로 표시됩니다.

또한 macOS에서는 파일 경로가 존재한다고 가정하여 창에 대한 프록시 아이콘을 설정한다는 추가적인 이점이 있습니다.

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

기본적으로 이 속성에는 빈 문자열이 포함됩니다.

함수 액세스:

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

windowTitlewindowIcon참조하세요 .

windowFlags : Qt::WindowFlags

창 플래그는 유형(예: Qt::Dialog)과 창 시스템에 대한 0개 이상의 힌트(예: 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)

알리미 신호:

void windowIconChanged(const QIcon &icon)

windowTitlesetWindowFilePath참조하세요 .

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 확장을 지원하는 임베디드 Linux, 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 &)

알림 신호:

void windowTitleChanged(const QString &title)

windowIcon, windowModified, windowFilePath참조하세요 .

[read-only] x : const int

이 속성은 모든 창 프레임을 포함한 부모를 기준으로 위젯의 x 좌표를 보유합니다.

윈도우의 지오메트리 문제에 대한 개요는 윈도우 지오메트리 문서를 참조하십시오.

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

함수에 액세스합니다:

int x() const

frameGeometry, y, pos참조하세요 .

[read-only] y : const int

이 속성은 창 프레임을 포함하여 부모를 기준으로 위젯의 y 좌표를 보유합니다.

윈도우의 지오메트리 문제에 대한 개요는 윈도우 지오메트리 문서를 참조하십시오.

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

함수에 액세스합니다:

int y() const

frameGeometry, x, pos참조하세요 .

멤버 함수 문서

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

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

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

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

이러한 편의 함수는 텍스트 text, 아이콘 icon 및 바로 가기 shortcut(있는 경우)가 포함된 새 작업을 만듭니다.

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

QWidget 는 반환된 QAction 의 소유권을 가져옵니다.

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

[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)

[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 QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

이 기능은 과부하된 기능입니다.

이 편의 기능은 텍스트 text, 아이콘 icon, 바로가기 shortcut(있는 경우)가 포함된 새 액션을 만듭니다.

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

QWidget 반환된 QAction 의 소유권을 가져옵니다.

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

[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 QIcon &icon, 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 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)

이 기능은 오버로드된 기능입니다.

이러한 편의 함수는 텍스트 text, 아이콘 icon, 바로 가기 shortcut(있는 경우)가 포함된 새 액션을 만듭니다.

액션의 triggered() 신호는 QObject::connect(액션, &QAction::triggered, args...)에 대한 호출처럼 연결되어 args, 가능한 Qt::ConnectionType 을 포함하여 완벽하게 전달됩니다.

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

QWidget 반환된 QAction 의 소유권을 가져옵니다.

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

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

위젯 플래그를 f 으로 설정하여 parent 의 자식인 위젯을 생성합니다.

parentnullptr 인 경우 새 위젯은 창이 됩니다. parent 가 다른 위젯인 경우 이 위젯은 parent 안에 있는 자식 창이 됩니다. 새 위젯은 parent 이 삭제되면 삭제됩니다.

위젯 플래그 인수인 f 은 일반적으로 0이지만 창 프레임을 사용자 지정하도록 설정할 수 있습니다(예: parentnullptr 여야 합니다). 프레임을 사용자 지정하려면 window flags 의 비트별 OR로 구성된 값을 사용합니다.

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

Qt의 X11 버전은 모든 시스템에서 스타일 플래그의 모든 조합을 제공하지 못할 수도 있습니다. 이는 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도 참조하세요 .

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. 위젯이 accepts 이벤트가 닫히면 위젯은 hidden 입니다. 이벤트를 ignores 하면 아무 일도 일어나지 않습니다. QWidget::closeEvent ()의 기본 구현은 닫기 이벤트를 받아들입니다.

위젯에 Qt::WA_DeleteOnClose 플래그가 있는 경우 위젯도 삭제됩니다. 위젯이 표시되는지 여부에 관계없이 위젯 닫기 이벤트가 위젯에 전달됩니다.

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 에 대한 이 이벤트 핸들러는 위젯 컨텍스트 메뉴 이벤트를 수신하기 위해 하위 클래스에서 다시 구현할 수 있습니다.

이 핸들러는 위젯의 contextMenuPolicyQt::DefaultContextMenu 일 때 호출됩니다.

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

event(), QContextMenuEvent, customContextMenuRequested()도 참조하세요 .

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

새 위젯 창을 만듭니다.

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

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

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

windowQWidget 기반 애플리케이션에 임베드할 수 있는 QWidget 을 만듭니다.

창 컨테이너는 parent 의 자식으로 창 플래그 flags 를 사용하여 생성됩니다.

창이 컨테이너에 임베드되면 컨테이너가 창의 지오메트리와 표시 여부를 제어합니다. 임베드된 창에서 QWindow::setGeometry(), QWindow::show() 또는 QWindow::hide()를 명시적으로 호출하는 것은 권장되지 않습니다.

컨테이너는 window 의 소유권을 이어받습니다. 창은 QWindow::setParent() 호출을 통해 창 컨테이너에서 제거할 수 있습니다.

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

창 컨테이너에는 여러 가지 알려진 제한 사항이 있습니다:

  • 스택 순서; 임베디드 창은 위젯 계층 구조 위에 불투명한 상자로 쌓입니다. 겹치는 여러 창 컨테이너 인스턴스의 스택 순서가 정의되지 않았습니다.
  • 렌더링 통합; 창 컨테이너는 QGraphicsProxyWidget, QWidget::render() 또는 이와 유사한 기능과 상호 운용되지 않습니다.
  • 포커스 처리; 창 컨테이너 인스턴스가 포커스 정책을 가질 수 있으며 QWindow::requestActivate() 호출을 통해 창에 포커스를 위임할 수 있습니다. 그러나 QWindow 인스턴스에서 일반 포커스 체인으로 돌아가는 것은 QWindow 인스턴스 구현 자체에 달려 있습니다. 예를 들어, 탭 포커스가 있는 Qt Quick 기반 창에 들어갈 때 추가 탭 누름은 QML 애플리케이션 내부에서만 순환할 가능성이 높습니다. 또한 QWindow::requestActivate()가 실제로 창 포커스를 제공하는지 여부는 플랫폼에 따라 다릅니다.
  • QWidget 기반 애플리케이션에서 많은 윈도우 컨테이너 인스턴스를 사용하면 애플리케이션의 전반적인 성능이 크게 저하될 수 있습니다.
  • 6.7부터 window 가 위젯에 속하는 경우(즉, windowwindowHandle() 호출에서 수신된 경우) 컨테이너가 생성되지 않습니다. 대신 이 함수는 parent 로 리부모된 후 위젯 자체를 반환합니다. 컨테이너가 생성되지 않으므로 flags 은 무시됩니다. 즉, window 이 위젯에 속한 경우 이 함수를 사용하는 대신 해당 위젯을 parent 으로 리패런팅하는 것이 좋습니다.

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

이 신호는 위젯의 contextMenuPolicyQt::CustomContextMenu 이고 사용자가 위젯에서 컨텍스트 메뉴를 요청했을 때 발생합니다. pos 위치는 위젯이 수신하는 컨텍스트 메뉴 이벤트의 위치입니다. 일반적으로 이 위치는 위젯 좌표입니다. 이 규칙의 예외는 QAbstractScrollArea 및 컨텍스트 메뉴 이벤트를 viewport()의 좌표에 매핑하는 하위 클래스입니다.

mapToGlobal(), QMenu, contextMenuPolicy도 참조하세요 .

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

창 시스템 리소스를 확보합니다. destroyWindow 가 참이면 위젯 창을 삭제합니다.

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

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

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

이 이벤트 핸들러는 드래그가 진행 중이고 마우스가 이 위젯에 들어갈 때 호출됩니다. 이벤트는 event 매개변수로 전달됩니다.

이벤트가 무시되면 위젯은 drag move events 을 수신하지 않습니다.

애플리케이션에서 드래그 앤 드롭을 제공하는 방법에 대한 개요는 드래그 앤 드롭 설명서를 참조하세요.

QDragQDragEnterEvent도 참조하세요 .

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

이 이벤트 핸들러는 드래그가 진행 중이고 마우스가 이 위젯을 떠날 때 호출됩니다. 이벤트는 event 매개변수로 전달됩니다.

애플리케이션에서 드래그 앤 드롭을 제공하는 방법에 대한 개요는 드래그 앤 드롭 설명서를 참조하세요.

QDragQDragLeaveEvent참조하세요 .

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

이 이벤트 핸들러는 드래그가 진행 중이고 커서가 이 위젯에 들어가거나, 커서가 이 위젯 내에서 이동하거나, 이 위젯에 포커스가 있는 동안 키보드에서 수정자 키를 누르는 등의 조건 중 하나라도 발생하면 호출됩니다. 이벤트는 event 매개변수로 전달됩니다.

애플리케이션에서 드래그 앤 드롭을 제공하는 방법에 대한 개요는 드래그 앤 드롭 설명서를 참조하세요.

QDragQDragMoveEvent참조하세요 .

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

이 이벤트 핸들러는 이 위젯에 드래그할 때 호출됩니다. 이벤트는 event 매개변수로 전달됩니다.

애플리케이션에서 드래그 앤 드롭을 제공하는 방법에 대한 개요는 드래그 앤 드롭 설명서를 참조하세요.

QDragQDropEvent참조하세요 .

WId QWidget::effectiveWinId() const

위젯의 유효 창 시스템 식별자, 즉 네이티브 부모의 창 시스템 식별자를 반환합니다.

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

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

nativeParentWidget()도 참조하세요 .

void QWidget::ensurePolished() const

위젯과 그 자식들이 QStyle 에 의해 폴리싱되었는지 확인합니다(즉, 적절한 글꼴과 팔레트를 가졌는지).

QWidget 는 위젯이 완전히 구성된 후 처음 표시되기 전에 이 함수를 호출합니다. 위젯의 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 가 참이면 이 함수는 앞으로 검색하고 next 가 거짓이면 뒤로 검색합니다.

이 함수를 다시 구현하고 싶을 때가 있습니다. 예를 들어, 웹 브라우저에서 "현재 활성 링크"를 앞뒤로 이동하고 "페이지"의 마지막 또는 첫 번째 링크에 도달할 때만 focusNextPrevChild()를 호출하도록 재구현할 수 있습니다.

자식 위젯은 부모 위젯에서 focusNextPrevChild()를 호출하지만, 자식 위젯이 포함된 창에서만 포커스를 리디렉션할 위치를 결정합니다. 따라서 객체에 대해 이 함수를 다시 구현하면 모든 자식 위젯에 대한 포커스 이동을 제어할 수 있습니다.

focusNextChild() 및 focusPreviousChild()도 참조하세요 .

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

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

위젯이 포커스 이벤트를 받으려면 일반적으로 Qt::NoFocus 이외의 다른 곳에 setFocusPolicy()를 전달해야 합니다. (애플리케이션 프로그래머는 일반적으로 포커스를 받지 않는 위젯을 포함하여 모든 위젯에서 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())

특정 flags 으로 지정된 gesture 에 위젯을 구독합니다.

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)

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

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

커서는 마우스 포커스가 잡혀 있는 동안 cursor 모양이 되고 releaseMouse()이 호출()될 때까지 이 위젯이 마우스 이벤트를 수신하는 유일한 위젯이 됩니다.

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

참고: QWidget::grabMouse()의 주석을 참조하세요.

releaseMouse(), grabKeyboard(), releaseKeyboard() 및 setCursor()도 참조하세요 .

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

주어진 context 에서 주어진 key 시퀀스를 감시하는 Qt의 바로 가기 시스템에 바로 가기를 추가합니다. contextQt::ApplicationShortcut 인 경우 바로 가기는 응용 프로그램 전체에 적용됩니다. 그렇지 않으면 이 위젯, Qt::WidgetShortcut 또는 창 자체, Qt::WindowShortcut 에 로컬로 적용됩니다.

여러 위젯에서 동일한 key 시퀀스를 가져온 경우 key 시퀀스가 발생하면 QEvent::Shortcut 이벤트가 비결정적 순서로 적용되지만 '모호한' 플래그가 true로 설정된 모든 위젯에 전송됩니다.

경고: 일반적으로 이 함수를 사용할 필요는 없으며, 대신 필요한 바로가기 키 시퀀스를 사용하여 QAction를 만들거나(동등한 메뉴 옵션과 도구 모음 버튼도 필요한 경우) 키 시퀀스만 필요한 경우 QShortcut를 만드세요. QActionQShortcut 모두 모든 이벤트 필터링을 처리하고 사용자가 키 시퀀스를 트리거할 때 트리거되는 신호를 제공하므로 이 낮은 수준의 함수보다 훨씬 사용하기 쉽습니다.

releaseShortcut() 및 setShortcutEnabled()도 참조하세요 .

QGraphicsEffect *QWidget::graphicsEffect() const

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

위젯에 그래픽 효과가 없는 경우 nullptr 이 반환됩니다.

setGraphicsEffect()도 참조하세요 .

QGraphicsProxyWidget *QWidget::graphicsProxyWidget() const

그래픽 보기에서 해당 임베디드 위젯의 프록시 위젯을 반환하고, 그렇지 않으면 nullptr 을 반환합니다.

QGraphicsProxyWidget::createProxyForChildWidget() 및 QGraphicsScene::addWidget()도 참조하세요 .

bool QWidget::hasEditFocus() const

이 위젯에 현재 편집 포커스가 있으면 true, 그렇지 않으면 false를 반환합니다.

이 기능은 임베디드 리눅스용 Qt에서만 사용할 수 있습니다.

setEditFocus() 및 QApplication::navigationMode()도 참조하십시오 .

[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)

before 액션 앞에 action 액션을 이 위젯의 액션 목록에 삽입합니다. beforenullptr 이거나 before 이 위젯에 유효한 액션이 아닌 경우 해당 액션을 추가합니다.

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

removeAction(), addAction(), QMenu, contextMenuPolicy, actions()도 참조하세요 .

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

before 액션 앞에 actions 액션을 이 위젯의 액션 목록에 삽입합니다. beforenullptr 이거나 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)는 거짓을 반환합니다.

여기서 상위 위젯이란 같은 창 내의 상위 위젯을 의미합니다.

따라서 부모 창도 고려하는 isEnabled()와 달리 isEnabledTo(0)은 이 위젯의 창에서 멈춥니다.

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 까지의 부모가 명시적으로 숨겨져 있지 않은 경우에 발생합니다.

이 함수는 위젯이 화면의 다른 창에 가려져 있지만 위젯 또는 위젯이 이동하면 물리적으로 표시될 수 있는 경우에도 참을 반환합니다.

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

show(), hide(), isVisible()도 참조하세요 .

bool QWidget::isWindow() const

위젯이 독립 창인 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

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

창은 parent widget 을 가질 수 있습니다. 그러면 부모와 그룹화되어 부모가 삭제되면 삭제되고 부모가 최소화되면 최소화되는 등의 작업을 수행합니다. 창 관리자에서 지원하는 경우 부모와 공통 작업 표시줄 항목도 갖게 됩니다.

QDialogQMainWindow 위젯은 생성자에 부모 위젯이 지정되어 있어도 기본적으로 창입니다. 이 동작은 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

위젯 좌표 posparent 의 좌표계에서 이 위젯의 좌표계로 변환합니다. parentnullptr 이 아니어야 하며 호출하는 위젯의 부모 위젯이어야 합니다.

이 함수는 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

위젯 좌표 posparent 의 좌표계로 변환합니다. parentnullptr 이 아니어야 하며 호출하는 위젯의 부모여야 합니다.

이 함수는 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::페인트 장치 메트릭 메트릭) 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::pos()는 이 위젯을 기준으로 마우스 커서의 위치를 보고합니다. 누르기 및 놓기 이벤트의 경우 위치는 일반적으로 마지막 마우스 이동 이벤트의 위치와 동일하지만 사용자의 손이 흔들리면 위치가 달라질 수 있습니다. 이것은 Qt가 아닌 기본 창 시스템의 기능입니다.

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

setMouseTracking(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), event(), QMouseEvent, 및 낙서 예시도참조하세요 .

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

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

마우스 프레스 이벤트()에서 새 위젯을 만들면 기본 창 시스템(또는 X11 창 관리자), 위젯의 위치 등에 따라 mouseReleaseEvent()가 예상한 위치에 오지 않을 수 있습니다.

기본 구현은 창 외부를 클릭하면 팝업 위젯이 닫히는 것을 구현합니다. 다른 위젯 유형의 경우 아무 작업도 수행하지 않습니다.

mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent, 및 Scribble 예시를참조하세요 .

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

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

mousePressEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent, 및 낙서 예시도참조하세요 .

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)

이 특수 이벤트 핸들러는 하위 클래스에서 다시 구현하여 message 파라미터로 전달되는 eventType 로 식별되는 네이티브 플랫폼 이벤트를 수신할 수 있습니다.

이 함수를 다시 구현할 때 Qt에서 처리되는 이벤트를 중지하려면 참을 반환하고 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(). 이 속도 최적화는 이벤트 처리 중에 해당 영역에 페인팅이 클리핑되므로 결과는 변경되지 않습니다. 예를 들어 QListViewQTableView 이 이를 수행합니다.

Qt는 또한 여러 페인트 이벤트를 하나로 병합하여 페인팅 속도를 높이려고 시도합니다. update ()가 여러 번 호출되거나 창 시스템이 여러 개의 페인트 이벤트를 보내면, Qt는 이러한 이벤트를 더 큰 영역을 가진 하나의 이벤트로 병합합니다 ( QRegion::united() 참조). repaint () 함수는 이 최적화를 허용하지 않으므로 가능하면 update() 함수를 사용하는 것이 좋습니다.

페인트 이벤트가 발생하면 일반적으로 업데이트 영역이 지워지므로 위젯의 배경에 페인트를 칠하게 됩니다.

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

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

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

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

event(), repaint(), update(), QPainter, QPixmap, QPaintEvent, 및 아날로그 시계도참조하세요 .

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)

Qt의 바로가기 시스템에서 지정된 id 의 바로가기를 제거합니다. 위젯은 더 이상 바로가기의 키 시퀀스에 대한 QEvent::Shortcut 이벤트를 수신하지 않습니다(동일한 키 시퀀스를 가진 다른 바로가기가 없는 경우).

경고: Qt의 바로 가기 시스템은 부모 위젯이 파괴되면 바로 가기를 자동으로 제거하므로 일반적으로 이 기능을 사용할 필요가 없습니다. 이 저수준 함수보다 사용하기 쉽기 때문에 QAction 또는 QShortcut 을 사용하여 바로가기를 처리하는 것이 가장 좋습니다. 이 작업은 비용이 많이 든다는 점도 유의하세요.

grabShortcut() 및 setShortcutEnabled()도 참조하세요 .

void QWidget::removeAction(QAction *action)

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

insertAction(), actions() 및 insertAction()도 참조하세요 .

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

renderFlags 을 사용하여 이 위젯의 sourceRegiontarget 으로 렌더링하는 방법을 결정합니다. 예를 들어 target 에서 targetOffset 에서 렌더링이 시작됩니다:

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

sourceRegion 이 널 영역인 경우 이 함수는 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))

이 함수는 과부하된 함수입니다.

위젯을 painterQPainter::device()로 렌더링합니다.

렌더링할 때 painter 에 적용된 변환 및 설정이 사용됩니다.

참고: painter 이 활성화되어 있어야 합니다. macOS에서는 위젯이 QPixmap 로 렌더링된 다음 painter 에 의해 그려집니다.

QPainter::device()도 참조하세요 .

[slot] void QWidget::repaint()

업데이트가 비활성화되어 있거나 위젯이 숨겨져 있지 않는 한 paintEvent()를 즉시 호출하여 위젯을 직접 다시 칠합니다.

애니메이션 도중과 같이 즉시 다시 칠해야 하는 경우에만 repaint()를 사용하는 것이 좋습니다. 대부분의 상황에서는 update()를 사용하는 것이 더 좋은데, 이는 Qt XML이 속도를 최적화하고 깜박임을 최소화할 수 있기 때문입니다.

경고: paintEvent ()에서 호출될 수 있는 함수에서 repaint ()를 호출하면 무한 재귀가 발생할 수 있습니다. update () 함수는 재귀를 일으키지 않습니다.

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() 및 낙서 예시를참조하세요 .

bool QWidget::restoreGeometry(const QByteArray &geometry)

바이트 배열에 저장된 최상위 위젯의 지오메트리와 상태를 복원합니다 geometry. 성공하면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

복원된 지오메트리가 화면 밖에 있는 경우 사용 가능한 화면 지오메트리 안에 있도록 수정됩니다.

QSettings 를 사용하여 저장한 지오메트리를 복원하려면 다음과 같은 코드를 사용할 수 있습니다:

QSettings settings("MyCompany", "MyApp");
myWidget->restoreGeometry(settings.value("myWidget/geometry").toByteArray());

창에서 발생하는 지오메트리 문제에 대한 개요는 창 지오메트리 설명서를 참조하세요.

QMainWindow::restoreState()를 사용하여 지오메트리와 도구 모음 및 도크 위젯의 상태를 복원할 수 있습니다.

saveGeometry(), QSettings, QMainWindow::saveState() 및 QMainWindow::restoreState()도 참조하세요 .

QByteArray QWidget::saveGeometry() const

최상위 위젯의 현재 지오메트리와 상태를 저장합니다.

창이 닫힐 때 지오메트리를 저장하려면 다음과 같은 닫기 이벤트를 구현하면 됩니다:

void MyWidget::closeEvent(QCloseEvent *event)
{
    QSettings settings("MyCompany", "MyApp");
    settings.setValue("geometry", saveGeometry());
    QWidget::closeEvent(event);
}

창과 관련된 지오메트리 문제에 대한 개요는 창 지오메트리 문서를 참조하세요.

QMainWindow::saveState()를 사용하여 지오메트리와 도구 모음 및 도크 위젯의 상태를 저장합니다.

restoreGeometry(), QMainWindow::saveState() 및 QMainWindow::restoreState()도 참조하세요 .

QScreen *QWidget::screen() const

위젯이 있는 화면을 반환합니다.

setScreen() 및 windowHandle()도 참조하세요 .

void QWidget::scroll(int dx, int dy)

하위 위젯을 포함한 위젯을 dx 픽셀 오른쪽으로, dy 아래로 스크롤합니다. dxdy 모두 음수일 수 있습니다.

스크롤 후 위젯은 다시 칠해야 하는 영역에 대한 페인트 이벤트를 받습니다. 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 이 참이면 이 위젯에 attribute 속성을 설정하고, 그렇지 않으면 속성을 지웁니다.

testAttribute()도 참조하세요 .

void QWidget::setBackgroundRole(QPalette::ColorRole role)

위젯의 백그라운드 역할을 role 로 설정합니다.

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

roleQPalette::NoRole 인 경우 위젯은 부모의 배경 역할을 상속받습니다.

스타일은 팔레트에서 자유롭게 색상을 선택할 수 있습니다. setBackgroundRole()로 원하는 결과를 얻지 못한 경우 팔레트를 수정하거나 스타일 시트를 설정할 수 있습니다.

backgroundRole() 및 foregroundRole()도 참조하세요 .

void QWidget::setBaseSize(int basew, int baseh)

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

이는 setBaseSize(QSize(basew, baseh))에 해당합니다. 위젯 기본 크기를 너비 basew 및 높이 baseh 로 설정합니다.

참고: 속성에 대한 세터 함수 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 이 참이면 위젯 입력 이벤트를 비활성화하고, 그렇지 않으면 입력 이벤트를 활성화합니다.

자세한 내용은 enabled 문서를 참조하세요.

isEnabledTo(), QKeyEvent, QMouseEvent, changeEvent()도 참조하세요 .

void QWidget::setEditFocus(bool enable)

enable 이 참이면 이 위젯에 편집 포커스를 갖도록 설정하면 Qt::Key_UpQt::Key_Down 이 위젯에 정상적으로 전달되고, 그렇지 않으면 Qt::Key_UpQt::Key_Down 이 포커스를 변경하는 데 사용됩니다.

이 기능은 임베디드 Linux용 Qt에서만 사용할 수 있습니다.

hasEditFocus() 및 QApplication::navigationMode()도 참조하십시오 .

void QWidget::setFixedHeight(int h)

너비를 변경하지 않고 위젯의 최소 높이와 최대 높이를 모두 h 로 설정합니다. 편의를 위해 제공됩니다.

sizeHint(), minimumSize(), maximumSize() 및 setFixedSize()도 참조하세요 .

void QWidget::setFixedSize(const QSize &s)

위젯의 최소 및 최대 크기를 모두 s 로 설정하여 위젯이 커지거나 작아지지 않도록 합니다.

이렇게 하면 QLayout 에 의해 설정된 기본 크기 제약 조건이 무시됩니다.

제약 조건을 제거하려면 크기를 QWIDGETSIZE_MAX 로 설정합니다.

또는 콘텐츠에 따라 위젯의 크기를 고정하려면 QLayout::setSizeConstraint(QLayout::SetFixedSize)를 호출할 수 있습니다;

maximumSizeminimumSize참조하세요 .

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 인 경우 이 위젯(또는 그 포커스 프록시)에 키보드 입력 포커스를 부여합니다.

void QWidget::setFocusProxy(QWidget *w)

위젯의 포커스 프록시를 위젯 w 으로 설정합니다. wnullptr 인 경우 이 함수는 이 위젯에 포커스 프록시가 없도록 재설정합니다.

일부 위젯은 "포커스를 가질 수 있지만" QLineEdit 과 같은 하위 위젯을 만들어 실제로 포커스를 처리할 수 있습니다. 이 경우 위젯은 줄 편집을 포커스 프록시로 설정할 수 있습니다.

setFocusProxy()는 "이 위젯"이 포커스를 가져올 때 실제로 포커스를 가져올 위젯을 설정합니다. 포커스 프록시가 있는 경우 setFocus() 및 hasFocus()는 포커스 프록시에서 작동합니다. "이 위젯"이 포커스 위젯인 경우 setFocusProxy()는 포커스를 새 포커스 프록시로 이동합니다.

focusProxy()도 참조하세요 .

void QWidget::setForegroundRole(QPalette::ColorRole role)

위젯의 전경 역할을 role 로 설정합니다.

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

roleQPalette::NoRole 인 경우 위젯은 배경 역할과 대비되는 전경 역할을 사용합니다.

스타일은 팔레트에서 자유롭게 색상을 선택할 수 있습니다. setForegroundRole()로 원하는 결과를 얻지 못한 경우 팔레트를 수정하거나 스타일 시트를 설정할 수 있습니다.

foregroundRole() 및 backgroundRole()도 참조하세요 .

void QWidget::setGeometry(int x, int y, int w, int h)

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

이는 setGeometry(QRect(x, y, w, h))에 해당합니다.

참고: 속성에 대한 세터 함수 geometry.

void QWidget::setGraphicsEffect(QGraphicsEffect *effect)

setGraphicsEffect 함수는 위젯의 그래픽 효과를 설정하는 데 사용됩니다.

effect 을 위젯의 효과로 설정합니다. 이 위젯에 이미 효과가 설치되어 있는 경우 QWidget 은 새 effect 을 설치하기 전에 기존 효과를 삭제합니다.

effect 가 다른 위젯에 설치된 효과인 경우 setGraphicsEffect()는 위젯에서 효과를 제거하고 이 위젯에 설치합니다.

QWidgeteffect 의 소유권을 가져옵니다.

참고: 이 함수는 자신과 모든 자식에게 효과를 적용합니다.

참고: QGLWidget, QOpenGLWidgetQQuickWidget 과 같은 OpenGL 기반 위젯에는 그래픽 효과가 지원되지 않습니다.

graphicsEffect()도 참조하세요 .

[slot] void QWidget::setHidden(bool hidden)

편의 기능, setVisible(!hidden)에 해당합니다.

isHidden()도 참조하세요 .

void QWidget::setLayout(QLayout *layout)

이 위젯의 레이아웃 관리자를 layout 로 설정합니다.

이 위젯에 이미 레이아웃 매니저가 설치되어 있는 경우 QWidget 에서는 다른 레이아웃 매니저를 설치할 수 없습니다. 먼저 기존 레이아웃 매니저( layout()에 의해 반환됨)를 삭제해야 새 레이아웃으로 setLayout()을 호출할 수 있습니다.

layout 가 다른 위젯의 레이아웃 매니저인 경우 setLayout()은 레이아웃을 다시 부모로 지정하여 이 위젯의 레이아웃 매니저로 만듭니다.

예시:

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(formWidget);
    setLayout(layout);

이 함수를 호출하는 대신 이 위젯을 레이아웃의 생성자에게 전달하는 방법도 있습니다.

QWidgetlayout 의 소유권을 갖게 됩니다.

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 속성에 대한 세터 함수입니다.

void QWidget::setMinimumSize(int minw, int minh)

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

이 함수는 setMinimumSize(QSize(minw, minh))에 해당합니다. 최소 너비를 minw 로, 최소 높이를 minh 로 설정합니다.

참고: 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 이 참이면 지정된 id 으로 바로 가기 자동 반복이 활성화되고, 그렇지 않으면 비활성화됩니다.

grabShortcut() 및 releaseShortcut()도 참조하세요 .

void QWidget::setShortcutEnabled(int id, bool enable = true)

enable 이 참이면 id 이 지정된 바로 가기가 활성화되고, 그렇지 않으면 바로 가기가 비활성화됩니다.

경고: 위젯이 숨겨지거나 표시되고 포커스를 얻거나 잃을 때 Qt의 단축키 시스템이 자동으로 단축키를 활성화/비활성화하므로 일반적으로 이 함수를 사용할 필요가 없습니다. 이 저수준 함수보다 사용하기 쉬운 QAction 또는 QShortcut 을 사용하여 바로가기를 처리하는 것이 가장 좋습니다.

grabShortcut() 및 releaseShortcut()도 참조하세요 .

void QWidget::setSizeIncrement(int w, int h)

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

x(너비) 크기 증분을 w 으로, y(높이) 크기 증분을 h 으로 설정합니다.

참고: 속성의 세터 함수 sizeIncrement.

void QWidget::setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)

과부하가 걸린 함수입니다.

위젯의 크기 정책을 horizontalvertical, 표준 스트레치 및 너비 대비 높이 없음으로 설정합니다.

참고: sizePolicy 속성에 대한 세터 함수입니다.

QSizePolicy::QSizePolicy()도 참조하세요 .

void QWidget::setStyle(QStyle *style)

위젯의 GUI 스타일을 style 로 설정합니다. 스타일 객체의 소유권은 이전되지 않습니다.

스타일을 설정하지 않으면 위젯은 애플리케이션의 스타일인 QApplication::style()을 대신 사용합니다.

위젯의 스타일을 설정해도 기존 또는 향후 하위 위젯에는 영향을 미치지 않습니다.

경고: 이 함수는 Qt의 스타일 지정 기능을 보여주고자 하는 데모 용도로 특히 유용합니다. 실제 응용 프로그램에서는 이 함수를 사용하지 말고 대신 일관된 하나의 GUI 스타일을 사용해야 합니다.

경고: Qt 스타일 시트는 현재 사용자 정의 QStyle 서브클래스에 대해 지원되지 않습니다. 향후 릴리스에서 이 문제를 해결할 계획입니다.

style(), QStyle, QApplication::style() 및 QApplication::setStyle()도 참조하세요 .

[static] void QWidget::setTabOrder(QWidget *first, QWidget *second)

포커스 순서에서 first 위젯 뒤에 second 위젯을 배치합니다.

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)

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

연속된 각 위젯 쌍에 대해 QWidget::setTabOrder(QWidget *, QWidget *)을 호출하여 widgets 목록에 있는 위젯의 탭 순서를 설정합니다.

이렇게 각 쌍을 수동으로 설정하는 대신:

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 이 참이면 이 위젯에 창 플래그 flag 를 설정하고, 그렇지 않으면 플래그를 지웁니다.

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::WindowStatewindowState()도 참조하세요 .

void QWidget::setupUi(QWidget *widget)

지정된 widget 에 대한 사용자 인터페이스를 설정합니다.

참고: 이 함수는 uic를 사용하여 만든 사용자 인터페이스 설명에서 파생된 위젯과 함께 사용할 수 있습니다.

애플리케이션에서 디자이너 UI 파일 사용도참조하세요 .

[slot] void QWidget::show()

위젯과 그 하위 위젯을 표시합니다.

자식 창의 경우 setVisible(참)을 호출하는 것과 같습니다. 그렇지 않으면 창 플래그에 대한 플랫폼의 기본 동작에 따라 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은 장식되지 않은 전체 화면 창의 개념을 이해하지 못합니다. 따라서 테두리가 없는 창을 요청하고 전체 화면을 채우도록 배치하고 크기를 조정하는 것이 최선입니다. 창 관리자에 따라 이 방법이 작동할 수도 있고 작동하지 않을 수도 있습니다. 테두리 없는 창은 거의 모든 최신 창 관리자에서 부분적으로 지원하는 모티프 힌트를 사용하여 요청됩니다.

다른 방법은 창 관리자를 완전히 우회하여 Qt::X11BypassWindowManagerHint 플래그가 있는 창을 만드는 것입니다. 하지만 키보드 포커스가 깨지고 바탕화면이 변경되거나 사용자가 다른 창을 띄울 때 매우 이상한 효과가 나타나는 등 다른 심각한 문제가 있습니다.

최신 ICCCM 이후 사양을 따르는 X11 창 관리자는 전체 화면 모드를 제대로 지원합니다.

macOS에서 창을 전체 화면으로 표시하면 전체 애플리케이션이 전체 화면 모드로 전환되어 전용 데스크톱이 제공됩니다. 애플리케이션이 전체 화면 모드로 실행되는 동안 다른 창을 표시하면 해당 창도 자동으로 전체 화면이 될 수 있습니다. 이를 방지하려면 다른 창을 표시하기 전에 전체 화면 창에서 showNormal() 또는 close()을 호출하여 전체 화면 모드를 종료하세요.

showNormal(), showMaximized(), show(), isVisible() 및 close()도 참조하세요 .

[slot] void QWidget::showMaximized()

위젯을 최대로 표시합니다.

이 함수를 호출하면 windows 에만 영향을 줍니다.

X11에서는 특정 창 관리자에서 이 함수가 제대로 작동하지 않을 수 있습니다. 자세한 설명은 창 지오메트리 설명서를 참조하십시오.

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 위젯 속성이 설정되어 있으면, 위젯은 모든 픽셀을 불투명한 색으로 칠합니다.

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을 반환합니다.

네이티브 위젯에는 winId()가 호출된 최상위 위젯, QGLWidget 및 하위 위젯이 포함됩니다.

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 입니다.

Qt::WindowStatesetWindowState()도 참조하세요 .

[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()도 참조하세요 .

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