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.

    QStringQWidget *를 사용하는 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 제외)QMacStyleQPlastiqueStyleQt 확장 스타일
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::FieldsStayAtSizeHint0필드가 effective size hint 이상으로 커지지 않습니다. 이는 QMacStyle의 기본값입니다.
QFormLayout::ExpandingFieldsGrow1size policy 가로가 Expanding 또는 MinimumExpanding 인 필드는 사용 가능한 공간을 채우기 위해 커집니다. 다른 필드는 유효 크기 힌트 이상으로 커지지 않습니다. 이것이 Plastique의 기본 정책입니다.
QFormLayout::AllNonFixedFieldsGrow2크기 정책을 통해 크기를 늘릴 수 있는 모든 필드는 사용 가능한 공간을 채울 때까지 커집니다. 이것이 대부분의 스타일에 대한 기본 정책입니다.

fieldGrowthPolicy참조하세요 .

enum QFormLayout::ItemRole

이 열거형은 행에 표시될 수 있는 위젯(또는 기타 레이아웃 항목)의 유형을 지정합니다.

Constant설명
QFormLayout::LabelRole0레이블 위젯입니다.
QFormLayout::FieldRole1필드 위젯.
QFormLayout::SpanningRole2레이블 및 필드 열에 걸쳐 있는 위젯입니다.

itemAt() 및 getItemPosition()도 참조하세요 .

enum QFormLayout::RowWrapPolicy

이 열거형은 양식의 행을 래핑하는 방식을 제어하는 데 사용할 수 있는 다양한 정책을 지정합니다.

Constant설명
QFormLayout::DontWrapRows0필드는 항상 레이블 옆에 배치됩니다. 이것은 Qt 확장 스타일을 제외한 모든 스타일에 대한 기본 정책입니다.
QFormLayout::WrapLongRows1레이블에는 가장 넓은 레이블에 맞는 충분한 가로 공간이 주어지고 나머지 공간은 필드에 주어집니다. 필드 쌍의 최소 크기가 사용 가능한 공간보다 넓으면 필드가 다음 줄로 래핑됩니다. 이것이 Qt Extended 스타일의 기본 정책입니다.
QFormLayout::WrapAllRows2필드는 항상 레이블 아래에 배치됩니다.

rowWrapPolicy참조하십시오 .

속성 문서

fieldGrowthPolicy : FieldGrowthPolicy

이 속성은 양식의 필드가 커지는 방식을 유지합니다.

기본값은 위젯 또는 애플리케이션 스타일에 따라 다릅니다. QMac스타일의 경우, 기본값은 FieldsStayAtSizeHint, QCommonStyle 파생 스타일(예: 플라스티크 및 윈도우)의 경우, 기본값은 ExpandingFieldsGrow, Qt 확장 스타일의 경우, 기본값은 AllNonFixedFieldsGrow 입니다.

어떤 필드도 커질 수 없고 양식의 크기가 조정되면 현재 form alignment 에 따라 추가 공간이 분배됩니다.

액세스 함수에 따라 추가 공간이 분배됩니다:

QFormLayout::FieldGrowthPolicy fieldGrowthPolicy() const
void setFieldGrowthPolicy(QFormLayout::FieldGrowthPolicy policy)

formAlignmentrowWrapPolicy참조하십시오 .

formAlignment : Qt::Alignment

이 속성은 레이아웃의 지오메트리 내에서 양식 레이아웃의 콘텐츠 정렬을 유지합니다.

기본값은 위젯 또는 애플리케이션 스타일에 따라 다릅니다. QMacStyle의 경우 기본값은 Qt::AlignHCenter | Qt::AlignTop 이며, 다른 스타일의 경우 기본값은 Qt::AlignLeft | Qt::AlignTop 입니다.

함수에 액세스합니다:

Qt::Alignment formAlignment() const
void setFormAlignment(Qt::Alignment alignment)

labelAlignmentrowWrapPolicy참조하십시오 .

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)

지정된 labelfield 을 사용하여 이 양식 레이아웃의 하단에 새 행을 추가합니다.

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 은 새로운 QLabelbuddy 로 설정됩니다.

[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 위치에 지정된 labelfield 과 함께 새 행을 삽입합니다. 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 은 새로운 QLabelbuddy 로 설정됩니다.

[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() 또는 setWidget()를 사용하세요.

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.