QFormLayout
是 Qt 框架中用于创建表单布局的一个类,适合于将标签和输入控件整齐地排列在一起。它可以帮助开发者轻松构建用户输入界面,尤其是在处理表单时。
QFormLayout以两列的形式展示其子项,常用于创建“标签-字段”对的布局。其中,左列通常是标签(由QLabel组成),右列是字段(由输入组件如QLineEdit、QSpinBox等组成)。这种布局方式非常适合用于接收用户输入的窗体,如设置面板、登录界面等。
重要方法
- addRow(QWidget label, QWidget field):向表单布局中添加一行,包括一个标签和一个字段。
- insertRow(int row, QWidget label, QWidget field):在指定位置插入一行。
- removeRow(int row):移除指定位置的行。
- takeRow(int row):移除指定位置的行,但不删除子控件。
- setWidget(int row, QFormLayout::ItemRole role, QWidget widget):在指定行和角色位置设置一个控件。
- getWidgetPosition(QWidget widget):获取控件在布局中的位置。
- setFormAlignment(Qt::Alignment alignment):设置整个表单的对齐方式。
- setLabelAlignment(Qt::Alignment alignment):设置标签(左侧区域)的对齐方式。
- setFieldGrowthPolicy(QFormLayout::FieldGrowthPolicy policy):设置字段的增长策略。
- setRowWrapPolicy(QFormLayout::RowWrapPolicy policy):设置行的换行策略。
- rowCount():获取布局中的行数。
- formAlignment():获取整个表单的对齐方式。
- labelAlignment():获取标签的对齐方式。
- fieldGrowthPolicy():获取字段的增长策略。
- rowWrapPolicy():获取行的换行策略。
- itemAt(int row, QFormLayout::ItemRole role = QFormLayout::LabelRole):获取指定行和角色的布局项。
- layoutForField(QWidget field):获取字段所在的布局。
- labelForField(QWidget field):获取与字段关联的标签。
#include <QApplication>
#include <QWidget>
#include <QFormLayout>
#include <QLineEdit>
#include <QPushButton>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QFormLayout *formLayout = new QFormLayout;QLineEdit *nameEdit = new QLineEdit;QLineEdit *emailEdit = new QLineEdit;formLayout->addRow("Name:", nameEdit);formLayout->addRow("Email:", emailEdit);QPushButton *submitButton = new QPushButton("Submit");formLayout->addRow(submitButton);window.setLayout(formLayout);window.setWindowTitle("QFormLayout Example");window.show();return app.exec();
}
觉得有帮助的话,打赏一下呗。。