QGridLayout
是 Qt 框架中的一个布局管理器,用于在网格中排列控件。它允许开发者以行和列的形式组织控件,灵活地管理控件的大小和位置。
重要方法
-
QGridLayout(QWidget *parent = nullptr):创建一个
-
QGridLayout对象,并指定其父窗口部件。
addWidget(QWidget *widget, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment alignment = 0):
向网格中添加一个控件,指定其所在的行和列。setRowStretch(int row, int stretch):
设置指定行的伸缩因子,控制该行在可用空间中的扩展比例。setColumnStretch(int column, int stretch):
设置指定列的伸缩因子,控制该列在可用空间中的扩展比例。itemAt(int index) const:
返回指定索引处的布局项。count() const:
返回布局中控件的数量。removeWidget(QWidget *widget):
从布局中移除指定的控件。setSpacing(int spacing):
设置控件之间的间距setContentsMargins(int left, int top, int right, int bottom):
设置布局的边距,控制布局与其父窗口之间的距离
#include <QApplication>
#include <QWidget>
#include <QGridLayout>
#include <QPushButton>
#include <QLabel>
class MyWidget : public QWidget {
public:
MyWidget() {
QGridLayout *layout = new QGridLayout(this);
layout->addWidget(new QLabel("Name:"), 0, 0);
layout->addWidget(new QLineEdit(), 0, 1);
layout->addWidget(new QLabel("Age:"), 1, 0);
layout->addWidget(new QLineEdit(), 1, 1);
layout->addWidget(new QPushButton("Submit"), 2, 0, 1, 2); // 跨越两列
layout->setSpacing(10); // 设置控件间距
layout->setContentsMargins(10, 10, 10, 10); // 设置边距
setLayout(layout);
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWidget widget;
widget.resize(300, 200);
widget.show();
return app.exec();
}
觉得有帮助的话,打赏一下呗。。