QFormLayout表单布局容器

QFormLayout表单布局容器,只有两列,行数无限制
重载成员函数:
void addRow(QWidget *label, QWidget *field);
void addRow(QWidget *label, QLayout *field);
void addRow(const QString &labelText, QWidget *field);
void addRow(const QString &labelText, QLayout *field);
void addRow(QWidget *widget);
void addRow(QLayout *layout);
将具有给定标签和字段的新行添加到此表单布局的底部。

写代码测试一下

    setMinimumSize(600,400);

    QLineEdit* lineEdit1 = new QLineEdit("文字版1填1widget接口");
    QPushButton* pushButton = new QPushButton("1填2widget接口");
    QPushButton* pushButton1 = new QPushButton("水平布局1");
    QLineEdit* lineEdit2 = new QLineEdit("图标版1填1widget接口");
    QPushButton* pushButton2 = new QPushButton("水平layout1");
    QLabel* label = new QLabel();
    QPixmap pix(":/image/label.ico");
    label->setPixmap(pix);


    QHBoxLayout* lay1 = new QHBoxLayout();
    lay1->addStretch(2);
    lay1->addWidget(pushButton1,1);
    lay1->setSpacing(30);
    lay1->addWidget(pushButton2,1);
    lay1->addStretch(2);


    QPushButton* pushButton3 = new QPushButton("水平布局2");
    QPushButton* pushButton4 = new QPushButton("水平layout2");
    QHBoxLayout* lay2 = new QHBoxLayout();
    lay2->addWidget(pushButton3);
    lay2->addWidget(pushButton4);


    QFormLayout* form = new QFormLayout(this);
    form->addRow("文字:",lineEdit1);//文字版1填1接口
    form->addRow(label,lineEdit2);//1填1接口
    form->addRow("lay1:",lay1);//1填1布局容器接口
    form->addRow(lay2);//1填2布局容器接口
    form->addRow(pushButton);//1填2接口

看一下效果图:
在这里插入图片描述


成员函数:
void setRowWrapPolicy(RowWrapPolicy policy);
参数是个枚举值
enum RowWrapPolicy {
DontWrapRows,
WrapLongRows,
WrapAllRows
};
默认值取决于小部件或应用程序的样式。对于Qt扩展样式,默认是WrapLongRows;对于其他样式,默认是DontWrapRows。如果希望将每个标签显示在其相关字段上方(而不是在其旁边),请将此属性设置为WrapAllRows。

写代码测试一下:

    setMinimumSize(600,400);

    QLineEdit* lineEdit1 = new QLineEdit("文字版1填1widget接口");
    QPushButton* pushButton = new QPushButton("1填2widget接口");
    QPushButton* pushButton1 = new QPushButton("水平布局1");
    QLineEdit* lineEdit2 = new QLineEdit("图标版1填1widget接口");
    QPushButton* pushButton2 = new QPushButton("水平layout1");
    QLabel* label = new QLabel();
    QPixmap pix(":/image/label.ico");
    label->setPixmap(pix);
    
    QHBoxLayout* lay1 = new QHBoxLayout();
    lay1->addStretch(2);
    lay1->addWidget(pushButton1,1);
    lay1->setSpacing(30);
    lay1->addWidget(pushButton2,1);
    lay1->addStretch(2);

    QPushButton* pushButton3 = new QPushButton("水平布局2");
    QPushButton* pushButton4 = new QPushButton("水平layout2");
    QHBoxLayout* lay2 = new QHBoxLayout();
    lay2->addWidget(pushButton3);
    lay2->addWidget(pushButton4);
    
    QFormLayout* form = new QFormLayout(this);
    //设置表单中的标签都位于控件的上方
    form->setRowWrapPolicy(QFormLayout::WrapAllRows);
    form->addRow("文字:",lineEdit1);//文字版1填1接口
    form->addRow(label,lineEdit2);//1填1接口
    form->addRow("lay1:",lay1);//1填1布局容器接口
    form->addRow(lay2);//1填2布局容器接口
    form->addRow(pushButton);//1填2接口

看一下效果图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值