QFormLayout Class
QFormLayout クラスは、入力ウィジェットのフォームと関連するラベルを管理します。詳細...
Header: | #include <QFormLayout> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | 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) |
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 に対応する行の項目が表示されている場合は真を返し、そうでない場合は偽を返します。
この関数は 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つデクリメントされます。この行を占めていたすべてのウィジェットとネストされたレイアウトが削除されます。これには、フィールド・ウィジェットとラベルの両方が含まれる。次の行はすべて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 が true の場合は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つデクリメントされる。それに続く行はすべて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()も参照してください 。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。