QFormLayout Class
QFormLayout クラスは、入力ウィジェットのフォームと関連するラベルを管理します。詳細...
ヘッダ | #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は便利なレイアウト・クラスで、子クラスを2列のフォームにレイアウトする。左カラムはラベルで構成され、右カラムは "フィールド "ウィジェット(ラインエディタ、スピンボックスなど)で構成されます。
従来、このような2カラムのフォーム・レイアウトは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 の以前のバージョンで使用されていた伝統的なスタイル。ラベルは左揃えで、拡張フィールドは利用可能なスペースを埋めるように大きくなります。(これは通常、2列のQGridLayout を使用した場合のスタイルに相当します)。 | macOS Aquaガイドラインに基づいたスタイル。ラベルは右揃えで、フィールドはサイズヒントを超えて大きくならず、フォームは水平方向に中央配置されます。 | KDEアプリケーションの推奨スタイル。MacStyle に似ていますが、フォームが左揃えで、すべてのフィールドが利用可能なスペースを埋めるように大きくなります。 | Qt Extended スタイルのデフォルトスタイルです。ラベルは右揃えになり、拡張フィールドは利用可能なスペースを埋めるように大きくなり、長い行では行の折り返しが有効になります。 |
フォーム・スタイルは、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
この列挙型は、フォームのフィールドの成長方法を制御するために使用できるさまざまなポリシーを指定します。
定数 | 値 | 説明 |
---|---|---|
QFormLayout::FieldsStayAtSizeHint | 0 | effective size hintこれはQMacStyleのデフォルトです。 |
QFormLayout::ExpandingFieldsGrow | 1 | size policy Expanding 、 の横幅を持つフィールドは、利用可能なスペースを埋めるように成長します。他のフィールドは有効サイズのヒントを超えて大きくなることはありません。これはPlastiqueのデフォルト・ポリシーです。MinimumExpanding |
QFormLayout::AllNonFixedFieldsGrow | 2 | 成長できるサイズ・ポリシーを持つすべてのフィールドは、利用可能なスペースを満たすように成長します。これはほとんどのスタイルのデフォルト・ポリシーです。 |
fieldGrowthPolicyも参照してください 。
enum QFormLayout::ItemRole
この列挙型は、行に表示できるウィジェット(または他のレイアウト項目)のタイプを指定します。
定数 | 値 | 説明 |
---|---|---|
QFormLayout::LabelRole | 0 | ラベルウィジェット |
QFormLayout::FieldRole | 1 | フィールド・ウィジェット |
QFormLayout::SpanningRole | 2 | ラベル列とフィールド列にまたがるウィジェット。 |
itemAt() およびgetItemPosition()も参照してください 。
enum QFormLayout::RowWrapPolicy
この列挙型は、フォームの行の折り返し方法を制御するために使用できるさまざまなポリシーを指定します。
定数 | 値 | 説明 |
---|---|---|
QFormLayout::DontWrapRows | 0 | フィールドは常にラベルの横にレイアウトされます。これは、Qt Extended スタイルを除くすべてのスタイルのデフォルトのポリシーです。 |
QFormLayout::WrapLongRows | 1 | ラベルには、最も広いラベルが収まる十分な水平スペースが与えられ、残りのスペースがフィールドに与えられます。フィールドのペアの最小サイズが利用可能なスペースよりも広い場合、フィールドは次の行に折り返されます。これは Qt Extended スタイルのデフォルトのポリシーです。 |
QFormLayout::WrapAllRows | 2 | フィールドは常にラベルの下に配置されます。 |
rowWrapPolicyも参照してください 。
プロパティのドキュメント
fieldGrowthPolicy : FieldGrowthPolicy
このプロパティは、フォームのフィールドの成長方法を保持します。
デフォルト値は、ウィジェットやアプリケーションのスタイルによって異なります。QMacStyle の場合、デフォルトはFieldsStayAtSizeHint です。QCommonStyle 派生スタイル(Plastique や Windows など)の場合、デフォルトはExpandingFieldsGrow です。Qt Extended スタイルの場合、デフォルトは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 Extended スタイルの場合、デフォルトは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 のトップレベルレイアウトとして直接設定されます。1つのウィジェットのトップ・レベル・レイアウトは1つだけです。それはQWidget::layout() によって返されます。
QWidget::setLayout()も参照してください 。
[virtual noexcept]
QFormLayout::~QFormLayout()
フォームレイアウトを破棄します。
[override virtual]
void QFormLayout::addItem(QLayoutItem *item)
再実装:QLayout::addItem(QLayoutItem *item)。
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 の項目が表示されている場合は true を返し、そうでない場合は false を返します。
この関数は Qt 6.4 で導入されました。
[since 6.4]
bool QFormLayout::isRowVisible(QLayout *layout) const
これはオーバーロードされた関数である。
layout に対応する行のアイテムが表示されている場合は true を返し、そうでない場合は false を返します。
この関数は Qt 6.4 で導入されました。
[since 6.4]
bool QFormLayout::isRowVisible(QWidget *widget) const
これはオーバーロードされた関数である。
widget に対応する行のアイテムが表示されている場合は true を返し、そうでない場合は false を返します。
この関数は 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 (column) を持つ、指定された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つデクリメントされます。この行を占めていたすべてのウィジェットとネストされたレイアウトが削除されます。これには、フィールド・ウィジェットとラベルの両方が含まれる。次の行はすべて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つデクリメントされます。この行を占めていたすべてのウィジェットとネストされたレイアウトが削除されます。これには、フィールド・ウィジェットとラベル(もしあれば)の両方が含まれます。次の行はすべて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つデクリメントされます。この行を占めていたすべてのウィジェットとネストされたレイアウトが削除されます。これには、フィールド・ウィジェットとラベル(もしあれば)の両方が含まれます。次の行はすべて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 が true ならwidget に対応する行を表示し、そうでなければ行を非表示にします。
この関数は Qt 6.4 で導入されました。
removeRow() およびtakeRow()も参照してください 。
[override virtual]
void QFormLayout::setSpacing(int 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
垂直方向の間隔が水平方向の間隔と等しい場合、この関数はその値を返し、そうでない場合は -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つデクリメントされる。それに続く行はすべて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つデクリメントされる。それに続く行はすべて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つデクリメントされる。それに続く行はすべて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.