QFormLayout Class
QFormLayout 클래스는 입력 위젯의 양식과 관련 레이블을 관리합니다. 더 보기...
Header: | #include <QFormLayout> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
상속합니다: | QLayout |
공용 유형
struct | TakeRowResult |
enum | FieldGrowthPolicy { FieldsStayAtSizeHint, ExpandingFieldsGrow, AllNonFixedFieldsGrow } |
enum | ItemRole { LabelRole, FieldRole, SpanningRole } |
enum | RowWrapPolicy { DontWrapRows, WrapLongRows, WrapAllRows } |
속성
|
|
공용 함수
QFormLayout(QWidget *parent = nullptr) | |
virtual | ~QFormLayout() |
void | addRow(QWidget *label, QWidget *field) |
void | addRow(QLayout *layout) |
void | addRow(QWidget *widget) |
void | addRow(QWidget *label, QLayout *field) |
void | addRow(const QString &labelText, QLayout *field) |
void | addRow(const QString &labelText, QWidget *field) |
QFormLayout::FieldGrowthPolicy | fieldGrowthPolicy() const |
Qt::Alignment | formAlignment() const |
void | getItemPosition(int index, int *rowPtr, QFormLayout::ItemRole *rolePtr) const |
void | getLayoutPosition(QLayout *layout, int *rowPtr, QFormLayout::ItemRole *rolePtr) const |
void | getWidgetPosition(QWidget *widget, int *rowPtr, QFormLayout::ItemRole *rolePtr) const |
int | horizontalSpacing() const |
void | insertRow(int row, QWidget *label, QWidget *field) |
void | insertRow(int row, QLayout *layout) |
void | insertRow(int row, QWidget *widget) |
void | insertRow(int row, QWidget *label, QLayout *field) |
void | insertRow(int row, const QString &labelText, QLayout *field) |
void | insertRow(int row, const QString &labelText, QWidget *field) |
(since 6.4) bool | isRowVisible(int row) const |
(since 6.4) bool | isRowVisible(QLayout *layout) const |
(since 6.4) bool | isRowVisible(QWidget *widget) const |
QLayoutItem * | itemAt(int row, QFormLayout::ItemRole role) const |
Qt::Alignment | labelAlignment() const |
QWidget * | labelForField(QWidget *field) const |
QWidget * | labelForField(QLayout *field) const |
void | removeRow(int row) |
void | removeRow(QLayout *layout) |
void | removeRow(QWidget *widget) |
int | rowCount() const |
QFormLayout::RowWrapPolicy | rowWrapPolicy() const |
void | setFieldGrowthPolicy(QFormLayout::FieldGrowthPolicy policy) |
void | setFormAlignment(Qt::Alignment alignment) |
void | setHorizontalSpacing(int spacing) |
void | setItem(int row, QFormLayout::ItemRole role, QLayoutItem *item) |
void | setLabelAlignment(Qt::Alignment alignment) |
void | setLayout(int row, QFormLayout::ItemRole role, QLayout *layout) |
(since 6.4) void | setRowVisible(int row, bool on) |
(since 6.4) void | setRowVisible(QLayout *layout, bool on) |
(since 6.4) void | setRowVisible(QWidget *widget, bool on) |
void | setRowWrapPolicy(QFormLayout::RowWrapPolicy policy) |
void | setVerticalSpacing(int spacing) |
void | setWidget(int row, QFormLayout::ItemRole role, QWidget *widget) |
QFormLayout::TakeRowResult | takeRow(int row) |
QFormLayout::TakeRowResult | takeRow(QLayout *layout) |
QFormLayout::TakeRowResult | takeRow(QWidget *widget) |
int | verticalSpacing() const |
재구현된 공용 함수
virtual void | addItem(QLayoutItem *item) override |
virtual int | count() const override |
virtual Qt::Orientations | expandingDirections() const override |
virtual bool | hasHeightForWidth() const override |
virtual int | heightForWidth(int width) const override |
virtual void | invalidate() override |
virtual QLayoutItem * | itemAt(int index) 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 |
상세 설명
QFormLayout은 두 열 형태로 자식을 배치하는 편리한 레이아웃 클래스입니다. 왼쪽 열은 레이블로 구성되고 오른쪽 열은 "필드" 위젯(줄 편집기, 회전 상자 등)으로 구성됩니다.
전통적으로 이러한 두 열 양식 레이아웃은 QGridLayout 을 사용하여 이루어졌습니다. QFormLayout은 다음과 같은 장점을 제공하는 상위 수준의 대안입니다:
- 다양한 플랫폼의 룩앤필 가이드라인을 준수합니다.
예를 들어, macOS Aqua 및 KDE 가이드라인은 레이블을 오른쪽 정렬하도록 지정하지만, Windows 및 GNOME 애플리케이션은 일반적으로 왼쪽 정렬을 사용합니다.
- 긴 행 줄 바꿈 지원.
디스플레이가 작은 기기의 경우 QFormLayout을 wrap long rows 또는 wrap all rows 으로 설정할 수 있습니다.
- 레이블-필드 쌍을 만들기 위한 편리한 API.
QString 및 QWidget *를 사용하는 addRow() 오버로드는 백그라운드에서 QLabel 을 생성하고 자동으로 버디를 설정합니다. 그러면 다음과 같은 코드를 작성할 수 있습니다:
QFormLayout *formLayout = new QFormLayout(this); formLayout->addRow(tr("&Name:"), nameLineEdit); formLayout->addRow(tr("&Email:"), emailLineEdit); formLayout->addRow(tr("&Age:"), ageSpinBox);
이를 QGridLayout 을 사용하여 작성한 다음 코드와 비교해 보세요:
QGridLayout *gridLayout = new QGridLayout(this); nameLabel = new QLabel(tr("&Name:")); nameLabel->setBuddy(nameLineEdit); emailLabel = new QLabel(tr("&Name:")); emailLabel->setBuddy(emailLineEdit); ageLabel = new QLabel(tr("&Name:")); ageLabel->setBuddy(ageSpinBox); gridLayout->addWidget(nameLabel, 0, 0); gridLayout->addWidget(nameLineEdit, 0, 1); gridLayout->addWidget(emailLabel, 1, 0); gridLayout->addWidget(emailLineEdit, 1, 1); gridLayout->addWidget(ageLabel, 2, 0); gridLayout->addWidget(ageSpinBox, 2, 1);
아래 표는 다양한 스타일의 기본 모양을 보여줍니다.
QCommonStyle 파생 스타일(QPlastiqueStyle 제외) | QMacStyle | QPlastiqueStyle | Qt 확장 스타일 |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
Windows, GNOME 및 이전 버전의 KDE에 사용되는 전통적인 스타일입니다. 레이블은 정렬된 상태로 유지되며, 확장되는 필드는 사용 가능한 공간을 채우기 위해 커집니다. (이는 일반적으로 두 열로 된 QGridLayout 을 사용하는 것과 일치합니다.) | macOS Aqua 가이드라인에 따른 스타일. 레이블은 오른쪽으로 정렬되고 필드는 크기 힌트 이상으로 커지지 않으며 양식은 가로 중앙에 있습니다. | KDE 애플리케이션에 권장되는 스타일입니다. 폼이 왼쪽으로 정렬되고 모든 필드가 사용 가능한 공간을 채우도록 커진다는 점을 제외하면 MacStyle과 유사합니다. | Qt 확장 스타일의 기본 스타일. 레이블이 오른쪽 정렬되고, 확장되는 필드가 사용 가능한 공간을 채울 때까지 커지며, 긴 줄에 행 줄 바꿈이 활성화됩니다. |
양식 스타일은 setLabelAlignment(), setFormAlignment(), setFieldGrowthPolicy() 및 setRowWrapPolicy()을 호출하여 개별적으로 재정의할 수도 있습니다. 예를 들어, 모든 플랫폼에서 QMacStyle의 양식 레이아웃 모양을 왼쪽 정렬 레이블로 시뮬레이션하려면 다음과 같이 작성할 수 있습니다:
formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows); formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); formLayout->setFormAlignment(Qt::AlignHCenter | Qt::AlignTop); formLayout->setLabelAlignment(Qt::AlignLeft);
QGridLayout, QBoxLayout, 및 QStackedLayout 를참조하십시오 .
멤버 유형 문서
enum QFormLayout::FieldGrowthPolicy
이 열거형은 양식의 필드가 커지는 방식을 제어하는 데 사용할 수 있는 다양한 정책을 지정합니다.
Constant | 값 | 설명 |
---|---|---|
QFormLayout::FieldsStayAtSizeHint | 0 | 필드가 effective size hint 이상으로 커지지 않습니다. 이는 QMacStyle의 기본값입니다. |
QFormLayout::ExpandingFieldsGrow | 1 | size policy 가로가 Expanding 또는 MinimumExpanding 인 필드는 사용 가능한 공간을 채우기 위해 커집니다. 다른 필드는 유효 크기 힌트 이상으로 커지지 않습니다. 이것이 Plastique의 기본 정책입니다. |
QFormLayout::AllNonFixedFieldsGrow | 2 | 크기 정책을 통해 크기를 늘릴 수 있는 모든 필드는 사용 가능한 공간을 채울 때까지 커집니다. 이것이 대부분의 스타일에 대한 기본 정책입니다. |
fieldGrowthPolicy 을참조하세요 .
enum QFormLayout::ItemRole
이 열거형은 행에 표시될 수 있는 위젯(또는 기타 레이아웃 항목)의 유형을 지정합니다.
Constant | 값 | 설명 |
---|---|---|
QFormLayout::LabelRole | 0 | 레이블 위젯입니다. |
QFormLayout::FieldRole | 1 | 필드 위젯. |
QFormLayout::SpanningRole | 2 | 레이블 및 필드 열에 걸쳐 있는 위젯입니다. |
itemAt() 및 getItemPosition()도 참조하세요 .
enum QFormLayout::RowWrapPolicy
이 열거형은 양식의 행을 래핑하는 방식을 제어하는 데 사용할 수 있는 다양한 정책을 지정합니다.
Constant | 값 | 설명 |
---|---|---|
QFormLayout::DontWrapRows | 0 | 필드는 항상 레이블 옆에 배치됩니다. 이것은 Qt 확장 스타일을 제외한 모든 스타일에 대한 기본 정책입니다. |
QFormLayout::WrapLongRows | 1 | 레이블에는 가장 넓은 레이블에 맞는 충분한 가로 공간이 주어지고 나머지 공간은 필드에 주어집니다. 필드 쌍의 최소 크기가 사용 가능한 공간보다 넓으면 필드가 다음 줄로 래핑됩니다. 이것이 Qt Extended 스타일의 기본 정책입니다. |
QFormLayout::WrapAllRows | 2 | 필드는 항상 레이블 아래에 배치됩니다. |
rowWrapPolicy 를참조하십시오 .
속성 문서
fieldGrowthPolicy : FieldGrowthPolicy
이 속성은 양식의 필드가 커지는 방식을 유지합니다.
기본값은 위젯 또는 애플리케이션 스타일에 따라 다릅니다. QMac스타일의 경우, 기본값은 FieldsStayAtSizeHint, QCommonStyle 파생 스타일(예: 플라스티크 및 윈도우)의 경우, 기본값은 ExpandingFieldsGrow, Qt 확장 스타일의 경우, 기본값은 AllNonFixedFieldsGrow 입니다.
어떤 필드도 커질 수 없고 양식의 크기가 조정되면 현재 form alignment 에 따라 추가 공간이 분배됩니다.
액세스 함수에 따라 추가 공간이 분배됩니다:
QFormLayout::FieldGrowthPolicy | fieldGrowthPolicy() const |
void | setFieldGrowthPolicy(QFormLayout::FieldGrowthPolicy policy) |
formAlignment 와 rowWrapPolicy 를참조하십시오 .
formAlignment : Qt::Alignment
이 속성은 레이아웃의 지오메트리 내에서 양식 레이아웃의 콘텐츠 정렬을 유지합니다.
기본값은 위젯 또는 애플리케이션 스타일에 따라 다릅니다. QMacStyle의 경우 기본값은 Qt::AlignHCenter | Qt::AlignTop 이며, 다른 스타일의 경우 기본값은 Qt::AlignLeft | Qt::AlignTop 입니다.
함수에 액세스합니다:
Qt::Alignment | formAlignment() const |
void | setFormAlignment(Qt::Alignment alignment) |
labelAlignment 및 rowWrapPolicy 을참조하십시오 .
horizontalSpacing : int
이 속성은 나란히 배치되는 위젯 사이의 간격을 유지합니다.
기본적으로 값을 명시적으로 설정하지 않으면 레이아웃의 가로 간격은 상위 레이아웃 또는 상위 위젯의 스타일 설정에서 상속됩니다.
함수 액세스:
int | horizontalSpacing() const |
void | setHorizontalSpacing(int spacing) |
verticalSpacing, QStyle::pixelMetric() 및 PM_LayoutHorizontalSpacing 를참조하세요 .
labelAlignment : Qt::Alignment
이 속성은 레이블의 가로 정렬을 유지합니다.
기본값은 위젯 또는 애플리케이션 스타일에 따라 다릅니다. QPlastiqueStyle을 제외한 QCommonStyle 파생 스타일의 경우 기본값은 Qt::AlignLeft 이며, 다른 스타일의 경우 기본값은 Qt::AlignRight 입니다.
함수에 액세스합니다:
Qt::Alignment | labelAlignment() const |
void | setLabelAlignment(Qt::Alignment alignment) |
formAlignment 를참조하세요 .
rowWrapPolicy : RowWrapPolicy
이 속성은 양식의 행을 래핑하는 방식을 유지합니다.
기본값은 위젯 또는 애플리케이션 스타일에 따라 다릅니다. Qt XML 확장 스타일의 경우 기본값은 WrapLongRows 이며, 다른 스타일의 경우 기본값은 DontWrapRows 입니다.
각 레이블을 관련 필드 옆에 표시하지 않고 그 위에 표시하려면 이 속성을 WrapAllRows 로 설정합니다.
함수에 액세스합니다:
QFormLayout::RowWrapPolicy | rowWrapPolicy() const |
void | setRowWrapPolicy(QFormLayout::RowWrapPolicy policy) |
fieldGrowthPolicy 를참조하십시오 .
verticalSpacing : int
이 속성은 세로로 배치된 위젯 사이의 간격을 유지합니다.
기본적으로 값을 명시적으로 설정하지 않으면 레이아웃의 세로 간격은 상위 레이아웃 또는 상위 위젯의 스타일 설정에서 상속됩니다.
함수에 액세스합니다:
int | verticalSpacing() const |
void | setVerticalSpacing(int spacing) |
horizontalSpacing, QStyle::pixelMetric() 및 PM_LayoutHorizontalSpacing 를참조하세요 .
멤버 함수 문서
[explicit]
QFormLayout::QFormLayout(QWidget *parent = nullptr)
주어진 parent 위젯으로 새 양식 레이아웃을 구성합니다.
이 레이아웃은 parent 의 최상위 레이아웃으로 직접 설정됩니다. 위젯에 대한 최상위 레이아웃은 하나만 있을 수 있습니다. QWidget::layout ()에 의해 반환됩니다.
QWidget::setLayout()도 참조하세요 .
[virtual noexcept]
QFormLayout::~QFormLayout()
양식 레이아웃을 삭제합니다.
[override virtual]
void QFormLayout::addItem(QLayoutItem *item)
다시 구현합니다: QLayout::addItem(QLayoutItem *항목).
void QFormLayout::addRow(QWidget *label, QWidget *field)
지정된 label 및 field 을 사용하여 이 양식 레이아웃의 하단에 새 행을 추가합니다.
insertRow()도 참조하세요 .
void QFormLayout::addRow(QLayout *layout)
이 함수는 과부하된 함수입니다.
이 양식 레이아웃의 끝에 지정된 layout 을 추가합니다. layout 은 두 열에 걸쳐 있습니다.
void QFormLayout::addRow(QWidget *widget)
이 함수는 과부하된 함수입니다.
이 양식 레이아웃의 끝에 지정된 widget 을 추가합니다. widget 은 두 열에 걸쳐 있습니다.
void QFormLayout::addRow(QWidget *label, QLayout *field)
과부하가 걸린 기능입니다.
void QFormLayout::addRow(const QString &labelText, QLayout *field)
이 함수는 과부하가 걸린 함수입니다.
이 과부하가 발생하면 백그라운드에서 labelText 을 텍스트로 하는 QLabel 이 자동으로 생성됩니다.
void QFormLayout::addRow(const QString &labelText, QWidget *field)
이 함수는 과부하가 걸린 함수입니다.
이 과부하로 인해 백그라운드에서 labelText 을 텍스트로 하는 QLabel 이 자동으로 생성됩니다. field 은 새로운 QLabel 의 buddy 로 설정됩니다.
[override virtual]
int QFormLayout::count() const
재구현합니다: QLayout::count() const.
[override virtual]
Qt::Orientations QFormLayout::expandingDirections() const
재구현합니다: QLayout::expandingDirections() const.
void QFormLayout::getItemPosition(int index, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
지정된 index 에서 항목의 행과 역할(열)을 검색합니다. index 이 범위를 벗어난 경우 *rowPtr 은 -1로 설정되고, 그렇지 않으면 행은 *rowPtr 에 저장되고 역할은 *rolePtr 에 저장됩니다.
itemAt(), count(), getLayoutPosition() 및 getWidgetPosition()도 참조하세요 .
void QFormLayout::getLayoutPosition(QLayout *layout, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
지정된 자식의 행과 역할(열)을 검색합니다 layout. layout 이 양식 레이아웃에 없으면 *rowPtr 이 -1로 설정되고, 그렇지 않으면 행은 *rowPtr 에 저장되고 역할은 *rolePtr 에 저장됩니다.
void QFormLayout::getWidgetPosition(QWidget *widget, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
레이아웃에서 지정된 widget 의 행과 역할(열)을 검색합니다. widget 가 레이아웃에 없으면 *rowPtr 은 -1로 설정되고, 그렇지 않으면 행은 *rowPtr 에 저장되고 역할은 *rolePtr 에 저장됩니다.
getItemPosition() 및 itemAt()도 참조하세요 .
[override virtual]
bool QFormLayout::hasHeightForWidth() const
재구현합니다: QLayoutItem::hasHeightForWidth() const.
[override virtual]
int QFormLayout::heightForWidth(int width) const
재구현합니다: QLayoutItem::heightForWidth(int) const.
void QFormLayout::insertRow(int row, QWidget *label, QWidget *field)
이 양식 레이아웃의 row 위치에 지정된 label 및 field 과 함께 새 행을 삽입합니다. row 이 범위를 벗어난 경우 새 행이 끝에 추가됩니다.
addRow()도 참조하세요 .
void QFormLayout::insertRow(int row, QLayout *layout)
이 함수는 과부하된 함수입니다.
이 양식 레이아웃의 row 위치에 지정된 layout 을 삽입합니다. layout 은 두 열에 걸쳐 있습니다. row 가 범위를 벗어나는 경우 위젯이 끝에 추가됩니다.
void QFormLayout::insertRow(int row, QWidget *widget)
이 함수는 과부하된 함수입니다.
이 양식 레이아웃의 row 위치에 지정된 widget 을 삽입합니다. widget 은 두 열에 걸쳐 있습니다. row 가 범위를 벗어난 경우 위젯이 끝에 추가됩니다.
void QFormLayout::insertRow(int row, QWidget *label, QLayout *field)
과부하가 걸린 기능입니다.
void QFormLayout::insertRow(int row, const QString &labelText, QLayout *field)
이 함수는 과부하가 걸린 함수입니다.
이 과부하가 발생하면 백그라운드에서 labelText 을 텍스트로 하는 QLabel 이 자동으로 생성됩니다.
void QFormLayout::insertRow(int row, const QString &labelText, QWidget *field)
이 함수는 과부하가 걸린 함수입니다.
이 과부하로 인해 백그라운드에서 자동으로 labelText 을 텍스트로 하는 QLabel 이 생성됩니다. field 은 새로운 QLabel 의 buddy 로 설정됩니다.
[override virtual]
void QFormLayout::invalidate()
다시 구현합니다: QLayout::invalidate().
[since 6.4]
bool QFormLayout::isRowVisible(int row) const
row 행의 일부 항목이 표시되면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
이 함수는 Qt 6.4에 도입되었습니다.
[since 6.4]
bool QFormLayout::isRowVisible(QLayout *layout) const
이 함수는 오버로드된 함수입니다.
layout 에 해당하는 행의 일부 항목이 표시되면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
이 함수는 Qt 6.4에 도입되었습니다.
[since 6.4]
bool QFormLayout::isRowVisible(QWidget *widget) const
이 함수는 오버로드된 함수입니다.
widget 에 해당하는 행의 일부 항목이 표시되면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
이 함수는 Qt 6.4에 도입되었습니다.
[override virtual]
QLayoutItem *QFormLayout::itemAt(int index) const
재구현합니다: QLayout::itemAt(int index) const.
QLayoutItem *QFormLayout::itemAt(int row, QFormLayout::ItemRole role) const
지정된 role (열)이 있는 지정된 row 의 레이아웃 항목을 반환합니다. 해당 항목이 없으면 nullptr
을 반환합니다.
QLayout::itemAt() 및 setItem()도 참조하세요 .
QWidget *QFormLayout::labelForField(QWidget *field) const
주어진 field 과 연관된 레이블을 반환합니다.
itemAt()도 참조하세요 .
QWidget *QFormLayout::labelForField(QLayout *field) const
과부하가 걸린 기능입니다.
[override virtual]
QSize QFormLayout::minimumSize() const
재구현합니다: QLayout::minimumSize() const.
void QFormLayout::removeRow(int row)
이 양식 레이아웃에서 row 행을 삭제합니다.
row 는 음수가 아니며 rowCount()보다 작아야 합니다.
이 호출 후에는 rowCount()가 1씩 감소합니다. 이 행을 차지했던 모든 위젯과 중첩된 레이아웃이 삭제됩니다. 여기에는 필드 위젯과 레이블(있는 경우)이 모두 포함됩니다. 다음 행은 모두 한 행 위로 이동하고 확보된 세로 공간은 나머지 행에 재분배됩니다.
이 함수를 사용하여 이전 addRow() 또는 insertRow()을 실행 취소할 수 있습니다:
QFormLayout *flay = ...; QPointer<QLineEdit> le = new QLineEdit; flay->insertRow(2, "User:", le); // later: flay->removeRow(2); // le == nullptr at this point
위젯을 삭제하지 않고 레이아웃에서 행을 제거하려면 takeRow()를 대신 사용하세요.
takeRow()도 참조하세요 .
void QFormLayout::removeRow(QLayout *layout)
이 함수는 과부하된 함수입니다.
이 양식 레이아웃에서 layout 에 해당하는 행을 삭제합니다.
이 호출 후에는 rowCount()가 1씩 감소합니다. 이 행을 차지했던 모든 위젯과 중첩된 레이아웃이 삭제됩니다. 여기에는 필드 위젯과 레이블(있는 경우)이 모두 포함됩니다. 다음 행은 모두 한 행 위로 이동하고 확보된 세로 공간은 나머지 행에 재분배됩니다.
이 함수를 사용하여 이전 addRow() 또는 insertRow()을 실행 취소할 수 있습니다:
QFormLayout *flay = ...; QPointer<QVBoxLayout> vbl = new QVBoxLayout; flay->insertRow(2, "User:", vbl); // later: flay->removeRow(layout); // vbl == nullptr at this point
삽입된 레이아웃을 삭제하지 않고 양식 레이아웃에서 행을 제거하려면 takeRow()를 대신 사용하세요.
takeRow()도 참조하세요 .
void QFormLayout::removeRow(QWidget *widget)
이 함수는 과부하된 함수입니다.
이 양식 레이아웃에서 widget 에 해당하는 행을 삭제합니다.
이 호출 후에는 rowCount()가 1씩 감소합니다. 이 행을 차지했던 모든 위젯과 중첩된 레이아웃이 삭제됩니다. 여기에는 필드 위젯과 레이블(있는 경우)이 모두 포함됩니다. 다음 행은 모두 한 행 위로 이동하고 확보된 세로 공간은 나머지 행에 재분배됩니다.
이 함수를 사용하여 이전 addRow() 또는 insertRow()을 실행 취소할 수 있습니다:
QFormLayout *flay = ...; QPointer<QLineEdit> le = new QLineEdit; flay->insertRow(2, "User:", le); // later: flay->removeRow(le); // le == nullptr at this point
위젯을 삭제하지 않고 레이아웃에서 행을 제거하려면 takeRow()를 대신 사용하세요.
takeRow()도 참조하세요 .
int QFormLayout::rowCount() const
양식의 행 수를 반환합니다.
QLayout::count()도 참조하세요 .
[override virtual]
void QFormLayout::setGeometry(const QRect &rect)
재구현합니다: QLayout::setGeometry(const QRect &r).
void QFormLayout::setItem(int row, QFormLayout::ItemRole role, QLayoutItem *item)
주어진 role 에 대해 주어진 row 의 항목을 item 로 설정하고 필요한 경우 빈 행으로 레이아웃을 확장합니다.
셀이 이미 사용 중인 경우 item 이 삽입되지 않고 오류 메시지가 콘솔로 전송됩니다. item 은 두 열에 걸쳐 있습니다.
setLayout()도 참조하세요 .
void QFormLayout::setLayout(int row, QFormLayout::ItemRole role, QLayout *layout)
지정된 role 에 대한 지정된 row 의 하위 레이아웃을 layout 로 설정하고 필요한 경우 빈 행으로 양식 레이아웃을 확장합니다.
셀이 이미 사용 중인 경우 layout 이 삽입되지 않고 오류 메시지가 콘솔로 전송됩니다.
참고: 대부분의 애플리케이션에서는 setLayout() 대신 addRow() 또는 insertRow()을 사용해야 합니다.
setWidget()도 참조하세요 .
[since 6.4]
void QFormLayout::setRowVisible(int row, bool on)
on 이 참이면 row 행을 표시하고, 그렇지 않으면 행을 숨깁니다.
row 는 음수가 아니며 rowCount()보다 작아야 합니다.
이 함수는 Qt 6.4에 도입되었습니다.
isRowVisible(), removeRow() 및 takeRow()도 참조하십시오 .
[since 6.4]
void QFormLayout::setRowVisible(QLayout *layout, bool on)
이 함수는 오버로드된 함수입니다.
on 이 참이면 layout 에 해당하는 행을 표시하고, 그렇지 않으면 행을 숨깁니다.
이 함수는 Qt 6.4에 도입되었습니다.
removeRow() 및 takeRow()도 참조하십시오 .
[since 6.4]
void QFormLayout::setRowVisible(QWidget *widget, bool on)
이 함수는 오버로드된 함수입니다.
on 이 참이면 widget 에 해당하는 행을 표시하고, 그렇지 않으면 행을 숨깁니다.
이 함수는 Qt 6.4에 도입되었습니다.
removeRow() 및 takeRow()도 참조하십시오 .
[override virtual]
void QFormLayout::setSpacing(int spacing)
속성에 대한 액세스 함수를 다시 구현합니다: QLayout::spacing.
이 함수는 수직 및 수평 간격을 모두 spacing 로 설정합니다.
spacing(), setVerticalSpacing() 및 setHorizontalSpacing()도 참조하세요 .
void QFormLayout::setWidget(int row, QFormLayout::ItemRole role, QWidget *widget)
주어진 role 에 대해 주어진 row 의 위젯을 widget 로 설정하고 필요한 경우 빈 행으로 레이아웃을 확장합니다.
셀이 이미 사용 중이면 widget 이 삽입되지 않고 오류 메시지가 콘솔로 전송됩니다.
참고: 대부분의 애플리케이션에서는 setWidget() 대신 addRow() 또는 insertRow()을 사용해야 합니다.
setLayout()도 참조하세요 .
[override virtual]
QSize QFormLayout::sizeHint() const
재구현합니다: QLayoutItem::sizeHint() const.
[override virtual]
int QFormLayout::spacing() const
속성에 대한 액세스 함수를 다시 구현합니다: QLayout::spacing.
수직 간격이 수평 간격과 같으면 이 함수는 해당 값을 반환하고, 그렇지 않으면 -1을 반환합니다.
setSpacing(), verticalSpacing() 및 horizontalSpacing()도 참조하세요 .
[override virtual]
QLayoutItem *QFormLayout::takeAt(int index)
재구현합니다: QLayout::takeAt(int index).
QFormLayout::TakeRowResult QFormLayout::takeRow(int row)
이 양식 레이아웃에서 지정된 row 을 제거합니다.
row 는 음수가 아니며 rowCount()보다 작아야 합니다.
참고: 이 함수는 아무것도 삭제하지 않습니다.
이 호출 후에는 rowCount()가 1씩 감소합니다. 다음 모든 행이 한 행 위로 이동하고 확보된 세로 공간이 나머지 행에 재분배됩니다.
이 함수를 사용하여 이전 addRow() 또는 insertRow() 실행을 취소할 수 있습니다:
QFormLayout *flay = ...; QPointer<QLineEdit> le = new QLineEdit; flay->insertRow(2, "User:", le); // later: QFormLayout::TakeRowResult result = flay->takeRow(2);
레이아웃에서 행을 제거하고 위젯을 삭제하려면 removeRow()를 대신 사용하세요.
위젯과 해당 레이블 레이아웃 항목을 모두 포함하는 구조를 반환합니다.
removeRow()도 참조하세요 .
QFormLayout::TakeRowResult QFormLayout::takeRow(QLayout *layout)
이 함수는 과부하된 함수입니다.
이 양식 레이아웃에서 지정된 layout 을 제거합니다.
참고: 이 함수는 아무것도 삭제하지 않습니다.
이 호출 후에는 rowCount()가 1씩 감소합니다. 다음 행은 모두 한 행 위로 이동하고 확보된 세로 공간은 나머지 행에 재분배됩니다.
QFormLayout *flay = ...; QPointer<QVBoxLayout> vbl = new QVBoxLayout; flay->insertRow(2, "User:", vbl); // later: QFormLayout::TakeRowResult result = flay->takeRow(widget);
양식 레이아웃에서 행을 제거하고 삽입된 레이아웃을 삭제하려면 removeRow()를 대신 사용합니다.
위젯과 해당 레이블 레이아웃 항목을 모두 포함하는 구조를 반환합니다.
removeRow()도 참조하세요 .
QFormLayout::TakeRowResult QFormLayout::takeRow(QWidget *widget)
이 함수는 과부하된 함수입니다.
이 양식 레이아웃에서 지정된 widget 을 제거합니다.
참고: 이 함수는 아무것도 삭제하지 않습니다.
이 호출 후에는 rowCount()가 1씩 감소합니다. 다음 행은 모두 한 행 위로 이동하고 확보된 세로 공간은 나머지 행에 재분배됩니다.
QFormLayout *flay = ...; QPointer<QLineEdit> le = new QLineEdit; flay->insertRow(2, "User:", le); // later: QFormLayout::TakeRowResult result = flay->takeRow(widget);
레이아웃에서 행을 제거하고 위젯을 삭제하려면 removeRow()를 대신 사용합니다.
위젯과 해당 레이블 레이아웃 항목을 모두 포함하는 구조를 반환합니다.
removeRow()도 참조하세요 .
© 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.