QGridLayout Class
QGridLayout クラスは、ウィジェットをグリッドにレイアウトします。詳細...
Header: | #include <QGridLayout> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | 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行目は3つのQLabel オブジェクト、1行目は3つのQLineEdit オブジェクト、2行目は3つのQListBoxオブジェクトで構成されています。列と列の間に適切なスペースを確保するために、プレースホルダーの列(1と3)を使用した。
列と行は同じ幅や高さではないことに注意してください。2つの列の幅を同じにしたい場合は、最小幅と伸縮率を同じにする必要があります。これを行うには、setColumnMinimumWidth() とsetColumnStretch() を使用します。
QGridLayoutがトップ・レベルのレイアウトでない場合(つまり、ウィジェットのすべての領域と子を管理しない場合)、レイアウトを作成するときに、そのレイアウトを親レイアウトに追加する必要があります。レイアウトを追加する通常の方法は、親レイアウトでaddLayout ()を呼び出すことです。
レイアウトを追加したら、addWidget(),addItem(),addLayout() を使用して、グリッドレイアウトのセルにウィジェットや他のレイアウトを配置することができます。
QGridLayoutには、contents margin とspacing() の2つのマージン幅もあります。コンテンツ・マージンは、QGridLayoutの4つの辺に沿って確保されたスペースの幅です。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 を構築します。レイアウトは、最初は1行1列で、新しいアイテムが挿入されると拡張されます。
このレイアウトは、parent のトップレベルレイアウトとして直接設定されます。ウィジェットのトップレベル・レイアウトは1つだけです。それは、QWidget::layout()によって返される。
parent がnullptr
の場合、このグリッド・レイアウトを別のレイアウトに挿入するか、QWidget::setLayout() を使用してウィジェットのレイアウトとして設定する必要があります。
QWidget::setLayout()も参照してください 。
[virtual noexcept]
QGridLayout::~QGridLayout()
グリッド・レイアウトを破棄します。これがトップレベルのグリッドの場合、ジオメトリ管理は終了します。
レイアウトのウィジェットは破棄されません。
[override virtual protected]
void QGridLayout::addItem(QLayoutItem *item)
再実装します:QLayout::addItem(QLayoutItem *item)を再実装します。
void QGridLayout::addItem(QLayoutItem *item, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment alignment = Qt::Alignment())
row,column の位置にitem を追加し、rowSpan の行とcolumnSpan の列にまたがり、alignment に従って整列します。rowSpan および/またはcolumnSpan が -1 の場合、アイテムはそれぞれ下端および/または右端に拡張されます。レイアウトはitem の所有権を持ちます。
void QGridLayout::addLayout(QLayout *layout, int row, int column, Qt::Alignment alignment = Qt::Alignment())
layout をグリッド内の位置 (row,column) に配置します。左上の位置は (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
再リプルメント: (int w) 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で、このテーブルの他のカラムがまったく成長できない場合でも、カラムは成長する可能性があります。
別の方法としては、QSpacerItem を使用してaddItem() でスペースを追加する方法がある。
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 で、この表の他の行がまったく成長できない場合でも、その行は成長する可能性があります。
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) を参照してください。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。