Qt 24 布局管理器3 - QFormLayout 表单布局管理器

本文学习自 狄泰软件 唐佐林老师的 QT。


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

setRowWrapPolicy() 设置每一行怎么排布

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

setLabelAlignment() 设置标签对齐方式

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

猜你喜欢

转载自blog.csdn.net/LinuxArmbiggod/article/details/115233420