QFormLayout顾名思义,主要用来做表单的输入及显示。和前面讲到的QBoxLayout、QGridLayout类似,QFormLayout可以插入widget、layout,直接用QGridLayout也可以做出QFormLayout的效果。
下面开始介绍QFormLayout用作表单应用时相关的接口函数。
基本方法
在末尾新增
左侧添加标签,右侧添加widget或layout
void addRow(QWidget *label, QWidget *field)
void addRow(QWidget *label, QLayout *field)
一般,左侧添加一个QLabel用来显示文本信息,右侧增加一个QLineEdit用来给用户输入。
左侧使用QFormLayout自带标签,右侧增加widget或layout
void addRow(const QString &labelText, QWidget *field)
void addRow(const QString &labelText, QLayout *field)
针对上面提到的接口函数,QFormLayout提供了一种更为便利的方法,该方法直接使用QFormLayout内部的QLabel,labelText所传参数为左侧label所显示的内容。
跨越两列增加widget或layout
void addRow(QWidget *widget)
void addRow(QLayout *layout)
该方法直接在末尾添加一个横跨两列的widget或layout,比如在末尾添加一个含有ok和clear按钮的layout。
在指定位置新增
void insertRow(int row, QWidget *label, QWidget *field)
void insertRow(int row, QWidget *label, QLayout *field)
void insertRow(int row, const QString &labelText, QWidget *field)
void insertRow(int row, const QString &labelText, QLayout *field)
void insertRow(int row, QWidget *widget)
void insertRow(int row, QLayout *layout)
只不过加了一个行号,其他含义和用法和上面一样,这里就不分条