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();
}
觉得有帮助的话,打赏一下呗。。