QHBoxLayout
是 Qt 框架中用于创建水平布局的类。它将子控件以横向的方式排列,并自动调整大小,以适应父窗口的尺寸变化。
重要方法
-
QHBoxLayout(QWidget *parent = nullptr):创建一个
QHBoxLayout
对象,并指定其父窗口部件。 -
**
addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = 0):
**向布局中添加一个控件。 -
**
addLayout(QLayout *layout, int stretch = 0):
**向布局中添加另一个布局。 -
**
addSpacerItem(QSpacerItem *spacer):
**向布局中添加一个间隔项,用于控制空间分配。 -
**
removeWidget(QWidget *widget):
**从布局中移除指定的控件。 -
**
count() const:
**返回布局中控件的数量。 -
**
itemAt(int index) const:
**返回指定索引处的布局项。 -
**
setStretch(int index, int stretch):
**设置指定控件的伸缩因子,控制其在布局中占用的空间比例。 -
**
setSpacing(int spacing):
**设置控件之间的间距。 -
**
setContentsMargins(int left, int top, int right, int bottom):
**设置布局的边距。 -
insertWidget(int , QWidget *, int , Qt::Alignment ):**在布局的指定位置插入一个子控件。
#include <QApplication>
#include <QWidget>
#include <QHBoxLayout>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>class MyWidget : public QWidget {
public:
MyWidget() {
QHBoxLayout *layout = new QHBoxLayout(this);QLabel *label = new QLabel("Name:", this); layout->addWidget(label); QLineEdit *lineEdit = new QLineEdit(this); layout->addWidget(lineEdit); QPushButton *button = new QPushButton("Submit", this); layout->addWidget(button); layout->setSpacing(10); // 设置控件间距 layout->setContentsMargins(5, 5, 5, 5); // 设置边距 setLayout(layout); }
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);MyWidget widget; widget.resize(300, 100); widget.show(); return app.exec();
}
觉得有帮助的话,打赏一下呗。。