QSizePolicy Class
QSizePolicy 클래스는 가로 및 세로 크기 조정 정책을 설명하는 레이아웃 속성입니다. 더 보기...
Header: | #include <QSizePolicy> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
공용 타입
enum | ControlType { DefaultType, ButtonBox, CheckBox, ComboBox, Frame, …, ToolButton } |
flags | ControlTypes |
enum | Policy { Fixed, Minimum, Maximum, Preferred, Expanding, …, Ignored } |
enum | PolicyFlag { GrowFlag, ExpandFlag, ShrinkFlag, IgnoreFlag } |
공용 함수
QSizePolicy() | |
QSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical, QSizePolicy::ControlType type = DefaultType) | |
QSizePolicy::ControlType | controlType() const |
Qt::Orientations | expandingDirections() const |
bool | hasHeightForWidth() const |
bool | hasWidthForHeight() const |
QSizePolicy::Policy | horizontalPolicy() const |
int | horizontalStretch() const |
bool | retainSizeWhenHidden() const |
void | setControlType(QSizePolicy::ControlType type) |
void | setHeightForWidth(bool dependent) |
void | setHorizontalPolicy(QSizePolicy::Policy policy) |
void | setHorizontalStretch(int stretchFactor) |
void | setRetainSizeWhenHidden(bool retainSize) |
void | setVerticalPolicy(QSizePolicy::Policy policy) |
void | setVerticalStretch(int stretchFactor) |
void | setWidthForHeight(bool dependent) |
void | transpose() |
QSizePolicy | transposed() const |
QSizePolicy::Policy | verticalPolicy() const |
int | verticalStretch() const |
QVariant | operator QVariant() const |
bool | operator!=(const QSizePolicy &other) const |
bool | operator==(const QSizePolicy &other) const |
관련 비회원
size_t | qHash(QSizePolicy key, size_t seed = 0) |
QDataStream & | operator<<(QDataStream &stream, const QSizePolicy &policy) |
QDataStream & | operator>>(QDataStream &stream, QSizePolicy &policy) |
상세 설명
위젯의 크기 정책은 다양한 방식으로 크기를 조정하려는 의지의 표현이며 레이아웃 엔진에서 위젯이 처리되는 방식에 영향을 줍니다. 각 위젯은 레이아웃할 때 선호하는 가로 및 세로 크기 조정 정책을 설명하는 QSizePolicy를 반환합니다. 특정 위젯의 QWidget::sizePolicy 속성을 변경하여 이를 변경할 수 있습니다.
QSizePolicy에는 두 개의 독립적인 QSizePolicy::Policy 값과 두 개의 스트레치 인자가 포함되어 있는데, 하나는 위젯의 가로 크기 정책을 설명하고 다른 하나는 세로 크기 정책을 설명합니다. 또한 기본 설정 크기의 높이와 너비가 관련되어 있는지 여부를 나타내는 플래그가 포함되어 있습니다.
가로 및 세로 정책은 생성자에서 설정할 수 있으며 setHorizontalPolicy() 및 setVerticalPolicy() 함수를 사용하여 변경할 수 있습니다. 스트레치 인자는 setHorizontalStretch() 및 setVerticalStretch() 함수를 사용하여 설정할 수 있습니다. 위젯의 sizeHint()가 너비에 따라 달라지는지 여부를 나타내는 플래그(예: 메뉴 모음 또는 단어 줄 바꿈 레이블)는 setHeightForWidth() 함수를 사용하여 설정할 수 있습니다.
horizontalPolicy(), verticalPolicy(), horizontalStretch() 및 verticalStretch() 함수를 사용하여 현재 크기 정책 및 늘이기 계수를 검색할 수 있습니다. 또는 transpose() 함수를 사용하여 가로 및 세로 정책과 스트레치를 교체할 수 있습니다. hasHeightForWidth () 함수는 크기 힌트 종속성을 나타내는 플래그의 현재 상태를 반환합니다.
expandingDirections() 함수를 사용하여 연결된 위젯이 sizeHint() 함수가 나타내는 것보다 더 많은 공간을 사용할 수 있는지 확인하고 어느 방향으로 확장할 수 있는지 알아보세요.
마지막으로, QSizePolicy 클래스는 이 크기 정책을 주어진 정책과 비교하는 연산자와 이 QSizePolicy를 QVariant 객체로 저장하는 QVariant 연산자를 제공합니다.
QSize, QWidget::sizeHint(), QWidget::sizePolicy, 및 QLayoutItem::sizeHint()도 참조하세요 .
멤버 유형 문서
열거형 QSizePolicy::ControlType
플래그 QSizePolicy::ControlTypes
이 열거형은 레이아웃 상호 작용 측면에서 다양한 유형의 위젯을 지정합니다:
상수 | 값 | 설명 |
---|---|---|
QSizePolicy::DefaultType | 0x00000001 | 지정되지 않은 경우 기본 유형입니다. |
QSizePolicy::ButtonBox | 0x00000002 | QDialogButtonBox 인스턴스. |
QSizePolicy::CheckBox | 0x00000004 | QCheckBox 인스턴스. |
QSizePolicy::ComboBox | 0x00000008 | QComboBox 인스턴스. |
QSizePolicy::Frame | 0x00000010 | QFrame 인스턴스. |
QSizePolicy::GroupBox | 0x00000020 | QGroupBox 인스턴스. |
QSizePolicy::Label | 0x00000040 | QLabel 인스턴스. |
QSizePolicy::Line | 0x00000080 | QFrame::HLine 또는 QFrame::VLine 를 사용하는 QFrame 인스턴스. |
QSizePolicy::LineEdit | 0x00000100 | QLineEdit 인스턴스. |
QSizePolicy::PushButton | 0x00000200 | QPushButton 인스턴스. |
QSizePolicy::RadioButton | 0x00000400 | QRadioButton 인스턴스. |
QSizePolicy::Slider | 0x00000800 | QAbstractSlider 인스턴스. |
QSizePolicy::SpinBox | 0x00001000 | QAbstractSpinBox 인스턴스. |
QSizePolicy::TabWidget | 0x00002000 | QTabWidget 인스턴스. |
QSizePolicy::ToolButton | 0x00004000 | QToolButton 인스턴스. |
ControlTypes 유형은 QFlags<ControlType>에 대한 typedef입니다. 제어 유형 값의 OR 조합을 저장합니다.
setControlType() 및 controlType()도 참조하십시오 .
enum QSizePolicy::Policy
이 열거형은 QSizePolicy 을 구성할 때 사용되는 다양한 차원별 크기 조정 유형을 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QSizePolicy::Fixed | 0 | QWidget::sizeHint()는 허용되는 유일한 대안이므로 위젯이 절대 커지거나 줄어들 수 없습니다(예: 푸시 버튼의 세로 방향). |
QSizePolicy::Minimum | GrowFlag | sizeHint()는 최소한의 값이면 충분합니다. 위젯은 확장할 수 있지만, 더 커도 이점이 없습니다(예: 푸시 버튼의 가로 방향). sizeHint()가 제공하는 크기보다 작을 수 없습니다. |
QSizePolicy::Maximum | ShrinkFlag | sizeHint()는 최대치입니다. 다른 위젯에 공간이 필요한 경우(예: 구분선) 위젯은 성능 저하 없이 얼마든지 축소할 수 있습니다. sizeHint()가 제공하는 크기보다 클 수 없습니다. |
QSizePolicy::Preferred | GrowFlag | ShrinkFlag | sizeHint()가 가장 좋지만 위젯을 축소해도 여전히 유용할 수 있습니다. 위젯은 확장할 수 있지만 sizeHint()(기본값 QWidget 정책)보다 크면 이점이 없습니다. |
QSizePolicy::Expanding | GrowFlag | ShrinkFlag | ExpandFlag | sizeHint()는 적당한 크기이지만 위젯을 축소해도 여전히 유용할 수 있습니다. 위젯은 여분의 공간을 활용할 수 있으므로 가능한 한 많은 공간을 확보해야 합니다(예: 가로 슬라이더의 가로 방향). |
QSizePolicy::MinimumExpanding | GrowFlag | ExpandFlag | sizeHint()는 최소한의 공간이면 충분합니다. 위젯은 여분의 공간을 사용할 수 있으므로 가능한 한 많은 공간을 확보해야 합니다(예: 가로 슬라이더의 가로 방향). |
QSizePolicy::Ignored | ShrinkFlag | GrowFlag | IgnoreFlag | sizeHint()는 무시됩니다. 위젯은 가능한 한 많은 공간을 확보합니다. |
PolicyFlag, setHorizontalPolicy() 및 setVerticalPolicy()도 참조하세요 .
enum QSizePolicy::PolicyFlag
이러한 플래그가 결합되어 다양한 Policy 값을 형성합니다:
상수 | 값 | 설명 |
---|---|---|
QSizePolicy::GrowFlag | 1 | 위젯은 필요한 경우 크기 힌트 이상으로 커질 수 있습니다. |
QSizePolicy::ExpandFlag | 2 | 위젯은 가능한 한 많은 공간을 확보해야 합니다. |
QSizePolicy::ShrinkFlag | 4 | 필요한 경우 위젯은 크기 힌트 아래로 축소할 수 있습니다. |
QSizePolicy::IgnoreFlag | 8 | 위젯의 크기 힌트는 무시됩니다. 위젯은 가능한 한 많은 공간을 확보합니다. |
Policy 를참조하세요 .
멤버 함수 문서
[constexpr noexcept]
QSizePolicy::QSizePolicy()
Fixed 을 수평 및 수직 정책으로 사용하여 QSizePolicy 객체를 구성합니다.
정책은 setHorizontalPolicy() 및 setVerticalPolicy() 함수를 사용하여 변경할 수 있습니다. 위젯의 기본 높이가 위젯의 너비에 따라 달라지는 경우 setHeightForWidth() 함수를 사용합니다(예: 줄 바꿈이 있는 QLabel ).
setHorizontalStretch() 및 setVerticalStretch()도 참조하세요 .
[constexpr noexcept]
QSizePolicy::QSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical, QSizePolicy::ControlType type = DefaultType)
지정된 horizontal 및 vertical 정책과 지정된 컨트롤 type 을 사용하여 QSizePolicy 객체를 구축합니다.
위젯의 기본 높이가 위젯의 너비에 따라 달라지는 경우 setHeightForWidth()를 사용합니다(예: 줄 바꿈이 있는 QLabel ).
setHorizontalStretch(), setVerticalStretch() 및 controlType()도 참조하세요 .
[noexcept]
QSizePolicy::ControlType QSizePolicy::controlType() const
이 크기 정책이 적용되는 위젯과 관련된 컨트롤 유형을 반환합니다.
setControlType()도 참조하세요 .
[constexpr noexcept]
Qt::Orientations QSizePolicy::expandingDirections() const
위젯이 QWidget::sizeHint() 함수가 나타내는 것보다 더 많은 공간을 사용할 수 있는지 여부를 반환합니다.
Qt::Horizontal 또는 Qt::Vertical 값은 위젯을 가로 또는 세로로 늘릴 수 있음을 의미하며(즉, 가로 또는 세로 정책은 Expanding 또는 MinimumExpanding), Qt::Horizontal | Qt::Vertical 값은 두 차원 모두에서 늘릴 수 있음을 의미합니다.
horizontalPolicy() 및 verticalPolicy()도 참조하세요 .
[constexpr noexcept]
bool QSizePolicy::hasHeightForWidth() const
위젯의 기본 높이가 너비에 따라 달라지면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
setHeightForWidth()도 참조하세요 .
[constexpr noexcept]
bool QSizePolicy::hasWidthForHeight() const
위젯의 너비가 높이에 따라 달라지는 경우 true
를 반환하고, 그렇지 않으면 false
을 반환합니다.
setWidthForHeight()도 참조하세요 .
[constexpr noexcept]
QSizePolicy::Policy QSizePolicy::horizontalPolicy() const
크기 정책의 가로 구성 요소를 반환합니다.
setHorizontalPolicy(), verticalPolicy() 및 horizontalStretch()도 참조하세요 .
[constexpr noexcept]
int QSizePolicy::horizontalStretch() const
크기 정책의 가로 스트레치 계수를 반환합니다.
setHorizontalStretch(), verticalStretch() 및 horizontalPolicy()도 참조하세요 .
[constexpr noexcept]
bool QSizePolicy::retainSizeWhenHidden() const
레이아웃이 숨겨져 있을 때 위젯의 크기를 유지해야 하는지 여부를 반환합니다. 기본값은 false
입니다.
setRetainSizeWhenHidden()도 참조하세요 .
[noexcept]
void QSizePolicy::setControlType(QSizePolicy::ControlType type)
이 크기 정책이 적용되는 위젯과 관련된 제어 유형을 type 으로 설정합니다.
컨트롤 유형은 이 크기 정책이 적용되는 위젯의 유형을 지정합니다. 이 컨트롤 유형은 위젯 사이에 적절한 간격을 삽입하기 위해 일부 스타일, 특히 QMacStyle에서 사용됩니다. 예를 들어, macOS Aqua 가이드라인에서는 푸시 버튼은 12픽셀 간격으로 배치해야 하지만 수직으로 쌓인 라디오 버튼은 6픽셀만 있으면 된다고 명시하고 있습니다.
controlType() 및 QStyle::layoutSpacing()도 참조하세요 .
[constexpr noexcept]
void QSizePolicy::setHeightForWidth(bool dependent)
위젯의 기본 높이가 너비에 따라 달라지는지 여부를 결정하는 플래그를 dependent 로 설정합니다.
hasHeightForWidth() 및 setWidthForHeight()도 참조하세요 .
[constexpr noexcept]
void QSizePolicy::setHorizontalPolicy(QSizePolicy::Policy policy)
가로 컴포넌트를 주어진 policy 로 설정합니다.
horizontalPolicy(), setVerticalPolicy(), setHorizontalStretch()도 참조하세요 .
[constexpr]
void QSizePolicy::setHorizontalStretch(int stretchFactor)
크기 정책의 가로 스트레치 계수를 주어진 stretchFactor 으로 설정합니다. stretchFactor 은 [0,255] 범위에 있어야 합니다.
두 위젯이 가로 레이아웃에서 서로 인접한 경우 왼쪽 위젯의 가로 스트레치 계수를 2로 설정하고 오른쪽 위젯의 계수를 1로 설정하면 왼쪽 위젯의 크기가 항상 오른쪽 위젯의 두 배로 유지됩니다.
horizontalStretch(), setVerticalStretch() 및 setHorizontalPolicy()도 참조하세요 .
[constexpr noexcept]
void QSizePolicy::setRetainSizeWhenHidden(bool retainSize)
위젯이 숨겨져 있을 때 레이아웃이 위젯의 크기를 유지할지 여부를 설정합니다. retainSize 가 true
인 경우 위젯을 숨겨도 레이아웃이 변경되지 않습니다.
retainSizeWhenHidden()도 참조하세요 .
[constexpr noexcept]
void QSizePolicy::setVerticalPolicy(QSizePolicy::Policy policy)
세로 컴포넌트를 주어진 policy 로 설정합니다.
verticalPolicy(), setHorizontalPolicy(), setVerticalStretch()도 참조하세요 .
[constexpr]
void QSizePolicy::setVerticalStretch(int stretchFactor)
크기 정책의 세로 스트레치 계수를 지정된 stretchFactor 으로 설정합니다. stretchFactor 은 [0,255] 범위에 있어야 합니다.
두 위젯이 세로 레이아웃에서 서로 인접한 경우 위쪽에 있는 위젯의 세로 스트레치 계수를 2로 설정하고 아래쪽에 있는 위젯의 계수를 1로 설정하면 위쪽에 있는 위젯의 크기가 항상 아래쪽에 있는 위젯의 두 배가 되도록 할 수 있습니다.
verticalStretch(), setHorizontalStretch() 및 setVerticalPolicy()도 참조하세요 .
[constexpr noexcept]
void QSizePolicy::setWidthForHeight(bool dependent)
위젯의 너비가 높이에 따라 달라지는지 여부를 결정하는 플래그를 dependent 로 설정합니다.
QGraphicsLayout 의 서브클래스에만 지원됩니다. 높이 대 너비 제약 조건과 너비 대 높이 제약 조건을 동시에 가진 레이아웃을 가질 수는 없습니다.
hasWidthForHeight() 및 setHeightForWidth()도 참조하세요 .
[constexpr noexcept]
void QSizePolicy::transpose()
수평 및 수직 정책과 스트레칭을 바꿉니다.
transposed()도 참조하세요 .
[constexpr noexcept]
QSizePolicy QSizePolicy::transposed() const
가로 및 세로 정책과 스트레치가 바뀐 크기 정책 객체를 반환합니다.
transpose()도 참조하세요 .
[constexpr noexcept]
QSizePolicy::Policy QSizePolicy::verticalPolicy() const
크기 정책의 세로 구성 요소를 반환합니다.
setVerticalPolicy(), horizontalPolicy() 및 verticalStretch()도 참조하세요 .
[constexpr noexcept]
int QSizePolicy::verticalStretch() const
크기 정책의 수직 스트레치 계수를 반환합니다.
setVerticalStretch(), horizontalStretch() 및 verticalPolicy()도 참조하세요 .
QVariant QSizePolicy::operator QVariant() const
이 QSizePolicy 을 저장하는 QVariant 을 반환합니다.
[constexpr noexcept]
bool QSizePolicy::operator!=(const QSizePolicy &other) const
이 정책이 other 과 다르면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
operator==()도 참조하세요 .
[constexpr noexcept]
bool QSizePolicy::operator==(const QSizePolicy &other) const
이 정책이 other 과 같으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
operator!=()도 참조하세요 .
관련 비회원
[noexcept]
size_t qHash(QSizePolicy key, size_t seed = 0)
seed 을 사용하여 key 에 대한 해시값을 반환합니다.
QDataStream &operator<<(QDataStream &stream, const QSizePolicy &policy)
데이터 스트림 stream 에 policy 크기를 씁니다.
QDataStream 연산자의 형식을참조하십시오 .
QDataStream &operator>>(QDataStream &stream, QSizePolicy &policy)
데이터 스트림 stream 에서 policy 크기를 읽습니다.
QDataStream 연산자의 형식을참조하십시오 .
© 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.