QGridLayout Class
QGridLayout 클래스는 그리드에 위젯을 배치합니다. 더 보기...
Header: | #include <QGridLayout> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
상속합니다: | QLayout |
속성
- horizontalSpacing : int
- verticalSpacing : int
공용 함수
QGridLayout(QWidget *parent = nullptr) | |
virtual | ~QGridLayout() |
void | addItem(QLayoutItem *item, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment alignment = Qt::Alignment()) |
void | addLayout(QLayout *layout, int row, int column, Qt::Alignment alignment = Qt::Alignment()) |
void | addLayout(QLayout *layout, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment()) |
void | addWidget(QWidget *widget, int row, int column, Qt::Alignment alignment = Qt::Alignment()) |
void | addWidget(QWidget *widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment()) |
QRect | cellRect(int row, int column) const |
int | columnCount() const |
int | columnMinimumWidth(int column) const |
int | columnStretch(int column) const |
void | getItemPosition(int index, int *row, int *column, int *rowSpan, int *columnSpan) const |
int | horizontalSpacing() const |
QLayoutItem * | itemAtPosition(int row, int column) const |
Qt::Corner | originCorner() const |
int | rowCount() const |
int | rowMinimumHeight(int row) const |
int | rowStretch(int row) const |
void | setColumnMinimumWidth(int column, int minSize) |
void | setColumnStretch(int column, int stretch) |
void | setHorizontalSpacing(int spacing) |
void | setOriginCorner(Qt::Corner corner) |
void | setRowMinimumHeight(int row, int minSize) |
void | setRowStretch(int row, int stretch) |
void | setVerticalSpacing(int spacing) |
int | verticalSpacing() const |
재구현된 공용 함수
virtual int | count() const override |
virtual Qt::Orientations | expandingDirections() const override |
virtual bool | hasHeightForWidth() const override |
virtual int | heightForWidth(int w) const override |
virtual void | invalidate() override |
virtual QLayoutItem * | itemAt(int index) const override |
virtual QSize | maximumSize() const override |
virtual int | minimumHeightForWidth(int w) const override |
virtual QSize | minimumSize() const override |
virtual void | setGeometry(const QRect &rect) override |
virtual void | setSpacing(int spacing) override |
virtual QSize | sizeHint() const override |
virtual int | spacing() const override |
virtual QLayoutItem * | takeAt(int index) override |
재구현된 보호 함수
virtual void | addItem(QLayoutItem *item) override |
상세 설명
QGridLayout은 부모 레이아웃 또는 parentWidget()에 의해 사용 가능한 공간을 가져와 행과 열로 나눈 다음 관리하는 각 위젯을 올바른 셀에 배치합니다.
열과 행은 동일하게 작동하므로 여기서는 열에 대해 설명하지만 행에도 동일한 함수가 있습니다.
각 열에는 최소 너비와 늘이기 계수가 있습니다. 최소 너비는 setColumnMinimumWidth()를 사용하여 설정한 값과 해당 열에 있는 각 위젯의 최소 너비 중 가장 큰 값입니다. 스트레치 계수는 setColumnStretch()를 사용하여 설정하며 열의 사용 가능한 공간 중 필요한 최소 공간을 초과하여 얼마나 늘릴지 결정합니다.
일반적으로 관리되는 각 위젯 또는 레이아웃은 addWidget()를 사용하여 자체 셀에 넣습니다. addItem () 및 addWidget()의 행과 열에 걸친 과부하를 사용하여 위젯이 여러 셀을 차지할 수도 있습니다. 이렇게 하면 QGridLayout이 열/행에 크기를 분배하는 방법을 추측합니다(스트레치 인자에 따라).
레이아웃에서 위젯을 제거하려면 removeWidget()를 호출합니다. 위젯에서 QWidget::hide()를 호출하면 QWidget::show()가 호출될 때까지 레이아웃에서 위젯이 효과적으로 제거됩니다.
이 그림은 5열 3행 그리드가 있는 대화 상자의 일부를 보여줍니다(그리드는 자홍색으로 겹쳐져 표시됨):
이 대화 상자 조각의 열 0, 2 및 4는 QLabel, QLineEdit 및 QListBox로 구성됩니다. 열 1과 3은 setColumnMinimumWidth()로 만든 자리 표시자입니다. 행 0은 QLabel 개체 3개, 행 1은 QLineEdit 개체 3개, 행 2는 QListBox 개체 3개로 구성됩니다. 열과 열 사이에 적절한 공간을 확보하기 위해 플레이스홀더 열(1과 3)을 사용했습니다.
열과 행의 너비나 높이가 같지 않다는 점에 유의하세요. 두 열의 너비가 같게 하려면 최소 너비와 늘이기 계수를 직접 설정해야 합니다. setColumnMinimumWidth () 및 setColumnStretch()을 사용하여 이 작업을 수행합니다.
QGridLayout이 최상위 레이아웃이 아닌 경우(즉, 위젯의 모든 영역과 자식을 관리하지 않는 경우), 레이아웃을 만들 때 부모 레이아웃에 추가해야 하지만 그 전에 아무 작업도 하지 않아야 합니다. 레이아웃을 추가하는 일반적인 방법은 부모 레이아웃에서 addLayout()를 호출하는 것입니다.
레이아웃을 추가한 후에는 addWidget(), addItem() 및 addLayout()를 사용하여 그리드 레이아웃의 셀에 위젯 및 기타 레이아웃을 넣을 수 있습니다.
QGridLayout에는 contents margin 및 spacing()의 두 가지 여백 너비도 포함됩니다. 콘텐츠 여백은 QGridLayout의 각 네 면을 따라 예약된 공간의 너비입니다. spacing ()는 인접한 상자 사이에 자동으로 할당된 간격의 너비입니다.
기본 콘텐츠 여백 값은 style. Qt 스타일이 지정하는 기본값은 자식 위젯의 경우 9, 창의 경우 11입니다. 간격은 기본적으로 최상위 레이아웃의 여백 너비와 동일하거나 상위 레이아웃과 동일합니다.
QBoxLayout, QStackedLayout, 레이아웃 관리 및 기본 레이아웃 예시도참조하세요 .
속성 문서
horizontalSpacing : int
이 속성은 나란히 배치된 위젯 사이의 간격을 유지합니다.
값을 명시적으로 설정하지 않으면 레이아웃의 가로 간격은 상위 레이아웃 또는 상위 위젯의 스타일 설정에서 상속됩니다.
함수에 액세스합니다:
int | horizontalSpacing() const |
void | setHorizontalSpacing(int spacing) |
verticalSpacing, QStyle::pixelMetric() 및 PM_LayoutHorizontalSpacing 를참조하세요 .
verticalSpacing : int
이 속성은 서로 위에 배치되는 위젯 사이의 간격을 유지합니다.
값을 명시적으로 설정하지 않으면 레이아웃의 세로 간격은 상위 레이아웃 또는 상위 위젯의 스타일 설정에서 상속됩니다.
함수에 액세스합니다:
int | verticalSpacing() const |
void | setVerticalSpacing(int spacing) |
horizontalSpacing, QStyle::pixelMetric() 및 PM_LayoutHorizontalSpacing 를참조하세요 .
멤버 함수 문서
[explicit]
QGridLayout::QGridLayout(QWidget *parent = nullptr)
부모 위젯인 parent 을 사용하여 새 QGridLayout을 구성합니다. 레이아웃은 처음에 하나의 행과 하나의 열을 가지며 새 항목이 삽입되면 확장됩니다.
이 레이아웃은 parent 의 최상위 레이아웃으로 직접 설정됩니다. 위젯에 대한 최상위 레이아웃은 하나만 있을 수 있습니다. QWidget::layout ()에 의해 반환됩니다.
parent 가 nullptr
인 경우 이 그리드 레이아웃을 다른 레이아웃에 삽입하거나 QWidget::setLayout()를 사용하여 위젯의 레이아웃으로 설정해야 합니다.
QWidget::setLayout()도 참조하세요 .
[virtual noexcept]
QGridLayout::~QGridLayout()
그리드 레이아웃을 파괴합니다. 최상위 그리드인 경우 지오메트리 관리가 종료됩니다.
레이아웃의 위젯은 파괴되지 않습니다.
[override virtual protected]
void QGridLayout::addItem(QLayoutItem *item)
다시 구현합니다: QLayout::addItem(QLayoutItem *항목).
void QGridLayout::addItem(QLayoutItem *item, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment alignment = Qt::Alignment())
row, column, rowSpan 행과 columnSpan 열에 걸쳐 item 를 추가하고 alignment 에 따라 정렬합니다. rowSpan 및/또는 columnSpan 이 -1이면 항목이 각각 아래쪽 및/또는 오른쪽 가장자리로 확장됩니다. 레이아웃은 item 의 소유권을 갖습니다.
void QGridLayout::addLayout(QLayout *layout, int row, int column, Qt::Alignment alignment = Qt::Alignment())
그리드의 위치 (row, column)에 layout 를 배치합니다. 왼쪽 상단 위치는 (0, 0)입니다.
정렬은 alignment 로 지정됩니다. 기본 맞춤은 0이며, 이는 위젯이 전체 셀을 채운다는 의미입니다.
0이 아닌 정렬은 레이아웃이 사용 가능한 공간을 채우기 위해 커지지 않고 sizeHint()에 따라 크기가 조정되어야 함을 나타냅니다.
layout 는 그리드 레이아웃의 자식이 됩니다.
void QGridLayout::addLayout(QLayout *layout, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())
이 함수는 과부하된 함수입니다.
이 버전에서는 여러 행/열에 걸쳐 layout 레이아웃이 셀 그리드에 추가됩니다. 셀은 row, column 에서 시작하여 rowSpan 행과 columnSpan 열에 걸쳐 있습니다.
rowSpan 및/또는 columnSpan 이 -1이면 레이아웃이 각각 아래쪽 및/또는 오른쪽 가장자리로 확장됩니다.
void QGridLayout::addWidget(QWidget *widget, int row, int column, Qt::Alignment alignment = Qt::Alignment())
주어진 widget 을 row, column 의 셀 그리드에 추가합니다. 기본적으로 왼쪽 위 위치는 (0, 0)입니다.
정렬은 alignment 으로 지정됩니다. 기본 맞춤은 0으로, 위젯이 전체 셀을 채우는 것을 의미합니다.
void QGridLayout::addWidget(QWidget *widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())
이 함수는 오버로드된 함수입니다.
이 버전은 주어진 widget 을 여러 행/열에 걸쳐 셀 그리드에 추가합니다. 셀은 fromRow, fromColumn 에서 시작하여 rowSpan 행과 columnSpan 열에 걸쳐 있습니다. widget 에는 alignment 이 지정됩니다.
rowSpan 및/또는 columnSpan 이 -1이면 위젯은 각각 아래쪽 및/또는 오른쪽 가장자리로 확장됩니다.
QRect QGridLayout::cellRect(int row, int column) const
그리드에서 행 row 및 열 column 이 있는 셀의 도형을 반환합니다. row 또는 column 이 그리드 밖에 있으면 유효하지 않은 사각형을 반환합니다.
경고: 현재 버전의 Qt에서 이 함수는 setGeometry()가 호출될 때까지, 즉 parentWidget()가 표시된 후에 유효한 결과를 반환하지 않습니다.
int QGridLayout::columnCount() const
이 그리드에 있는 열의 수를 반환합니다.
int QGridLayout::columnMinimumWidth(int column) const
column 열의 열 간격을 반환합니다.
setColumnMinimumWidth()도 참조하세요 .
int QGridLayout::columnStretch(int column) const
column 열의 스트레치 계수를 반환합니다.
setColumnStretch()도 참조하세요 .
[override virtual]
int QGridLayout::count() const
재구현합니다: QLayout::count() const.
[override virtual]
Qt::Orientations QGridLayout::expandingDirections() const
재구현합니다: QLayout::expandingDirections() const.
void QGridLayout::getItemPosition(int index, int *row, int *column, int *rowSpan, int *columnSpan) const
주어진 index 으로 항목의 위치 정보를 반환합니다.
row 및 column 으로 전달된 변수는 레이아웃에서 항목의 위치로 업데이트되고 rowSpan 및 columnSpan 변수는 항목의 세로 및 가로 스팬으로 업데이트됩니다.
itemAtPosition() 및 itemAt()도 참조하세요 .
[override virtual]
bool QGridLayout::hasHeightForWidth() const
재구현합니다: QLayoutItem::hasHeightForWidth() const.
[override virtual]
int QGridLayout::heightForWidth(int w) const
재구현합니다: QLayoutItem::heightForWidth(int) const.
[override virtual]
void QGridLayout::invalidate()
다시 구현합니다: QLayout::invalidate().
[override virtual]
QLayoutItem *QGridLayout::itemAt(int index) const
재구현합니다: QLayout::itemAt(int index) const.
QLayoutItem *QGridLayout::itemAtPosition(int row, int column) const
셀을 차지하는 레이아웃 항목(row, column) 또는 셀이 비어 있는 경우 nullptr
을 반환합니다.
getItemPosition() 및 indexOf()도 참조하세요 .
[override virtual]
QSize QGridLayout::maximumSize() const
재구현합니다: QLayout::maximumSize() const.
[override virtual]
int QGridLayout::minimumHeightForWidth(int w) const
재구현합니다: QLayoutItem::minimumHeightForWidth(int w) const.
[override virtual]
QSize QGridLayout::minimumSize() const
재구현합니다: QLayout::minimumSize() const.
Qt::Corner QGridLayout::originCorner() const
그리드의 원점, 즉 위치 (0, 0)에 사용되는 모서리를 반환합니다.
setOriginCorner()도 참조하십시오 .
int QGridLayout::rowCount() const
이 그리드의 행 수를 반환합니다.
int QGridLayout::rowMinimumHeight(int row) const
행에 설정된 최소 너비를 반환합니다 row.
setRowMinimumHeight()도 참조하세요 .
int QGridLayout::rowStretch(int row) const
행 row 에 대한 스트레치 계수를 반환합니다.
setRowStretch()도 참조하세요 .
void QGridLayout::setColumnMinimumWidth(int column, int minSize)
column 열의 최소 너비를 minSize 픽셀로 설정합니다.
columnMinimumWidth() 및 setRowMinimumHeight()도 참조하세요 .
void QGridLayout::setColumnStretch(int column, int stretch)
column 열의 스트레치 계수를 stretch 으로 설정합니다. 첫 번째 열은 숫자 0입니다.
스트레치 계수는 이 그리드의 다른 열에 상대적입니다. 스트레치 계수가 높은 열은 사용 가능한 공간을 더 많이 차지합니다.
기본 스트레치 계수는 0입니다. 스트레치 계수가 0이고 이 표의 다른 열이 전혀 늘어날 수 없는 경우 열이 계속 늘어날 수 있습니다.
다른 방법은 addItem()와 QSpacerItem 을 사용하여 간격을 추가하는 것입니다.
columnStretch() 및 setRowStretch()도 참조하세요 .
[override virtual]
void QGridLayout::setGeometry(const QRect &rect)
재구현합니다: QLayout::setGeometry(const QRect &r).
void QGridLayout::setOriginCorner(Qt::Corner corner)
그리드의 원점 모서리, 즉 위치(0, 0)를 corner 로 설정합니다.
originCorner()도 참조하십시오 .
void QGridLayout::setRowMinimumHeight(int row, int minSize)
행 row 의 최소 높이를 minSize 픽셀로 설정합니다.
rowMinimumHeight() 및 setColumnMinimumWidth()도 참조하세요 .
void QGridLayout::setRowStretch(int row, int stretch)
row 행의 스트레치 계수를 stretch 으로 설정합니다. 첫 번째 행은 숫자 0입니다.
스트레치 계수는 이 그리드의 다른 행에 상대적입니다. 스트레치 계수가 높은 행은 사용 가능한 공간을 더 많이 차지합니다.
기본 스트레치 계수는 0입니다. 스트레치 계수가 0이고 이 표의 다른 행이 전혀 늘어날 수 없는 경우 행이 계속 늘어날 수 있습니다.
rowStretch(), setRowMinimumHeight() 및 setColumnStretch()도 참조하세요 .
[override virtual]
void QGridLayout::setSpacing(int spacing)
속성에 대한 액세스 함수를 다시 구현합니다: QLayout::spacing.
이 함수는 수직 및 수평 간격을 모두 spacing 로 설정합니다.
spacing(), setVerticalSpacing() 및 setHorizontalSpacing()도 참조하세요 .
[override virtual]
QSize QGridLayout::sizeHint() const
재구현합니다: QLayoutItem::sizeHint() const.
[override virtual]
int QGridLayout::spacing() const
속성에 대한 액세스 함수를 다시 구현합니다: QLayout::spacing.
수직 간격이 수평 간격과 같으면 이 함수는 해당 값을 반환하고, 그렇지 않으면 -1을 반환합니다.
setSpacing(), verticalSpacing() 및 horizontalSpacing()도 참조하세요 .
[override virtual]
QLayoutItem *QGridLayout::takeAt(int index)
재구현합니다: QLayout::takeAt(int index).
© 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.