This article is based on the QT of Tang Zuolin from Ditai Software.
setRowWrapPolicy() Set how to arrange each row
QFormLayout::WrapAllRows 以行位单位的操作:以每一个组件为一行
QFormLayout::WrapLongRows 以行位单位的操作:以每组为一行, 一般用于小屏幕的嵌入式设备
QFormLayout::DontWrapRows
setLabelAlignment() Set label alignment
Qt::AlignRight 标签右对齐
Widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QtGui/QWidget>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
};
#endif // WIDGET_H
Widget.cpp
#include "Widget.h"
#include <QLineEdit>
#include <QFormLayout>
//WindowCloseButtonHint :窗口关闭按钮
/*
如果构造函数 不显示调用功能QWidget(parent, Qt::WindowCloseButtonHint)的话,则会出现标准的 最小化 最大化 关闭 三个按钮
如果显示调用 QWidget(parent, Qt::WindowCloseButtonHint)的话,只有关闭按钮
*/
Widget::Widget(QWidget *parent) //: QWidget(parent, Qt::WindowCloseButtonHint)
{
//创建文本输入框
QLineEdit* nameEdit = new QLineEdit();
QLineEdit* mailEdit = new QLineEdit();
QLineEdit* addrEdit = new QLineEdit();
//创建 表单布局管理器 对象
QFormLayout* layout = new QFormLayout();
//向布局管理器添加 文本输入框,并指定标签
layout->addRow("Name:", nameEdit);
layout->addRow("Email:", mailEdit);
layout->addRow("Address:", addrEdit);
/*样式 QFormLayout::WrapAllRows 以行位单位的操作:以每一个组件为一行
Name:
QLineEdit文本输入框
Email:
QLineEdit文本输入框
...
*/
//layout->setRowWrapPolicy(QFormLayout::WrapAllRows);
/*样式 QFormLayout::WrapLongRows 以行位单位的操作:以每组为一行
Name:QLineEdit文本输入框
Email:QLineEdit文本输入框
...
*/
layout->setRowWrapPolicy(QFormLayout::WrapLongRows);
//标签右对齐
layout->setLabelAlignment(Qt::AlignRight);
layout->setSpacing(10);
setLayout(layout);//布局管理器生效
setWindowTitle("FTP");//设置窗口标题
}
Widget::~Widget()
{
}
main.cpp
#include <QtGui/QApplication>
#include "Widget.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}