Qt 24 Layout Manager 3-QFormLayout Form Layout Manager

This article is based on the QT of Tang Zuolin from Ditai Software.


Insert picture description here
Insert picture description here
Insert picture description here

setRowWrapPolicy() Set how to arrange each row

QFormLayout::WrapAllRows 以行位单位的操作:以每一个组件为一行
QFormLayout::WrapLongRows 以行位单位的操作:以每组为一行, 一般用于小屏幕的嵌入式设备
QFormLayout::DontWrapRows  

setLabelAlignment() Set label alignment

Qt::AlignRight 标签右对齐

Insert picture description here

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();
}

Guess you like

Origin blog.csdn.net/LinuxArmbiggod/article/details/115233420