QFormLayout布局该什么时候使用

概述

QFormLayout是一种支持两列的格子布局方式,左列是标签,右列是窗口部件。可以方便且快速的实现标签和输入组件的组合,如下图。
在这里插入图片描述

示例

像上面的例子,使用QGridLayout(栅格布局)也是可以实现的,但是远没有使用QFormLayout方便,对比如下:
使用QGridLayout需要编写下面的代码

  nameLabel = new QLabel(tr("&Name:"));
  nameLabel->setBuddy(nameLineEdit);

  emailLabel = new QLabel(tr("&Email:"));
  emailLabel->setBuddy(emailLineEdit);

  ageLabel = new QLabel(tr("&Age:"));
  ageLabel->setBuddy(ageSpinBox);

  QGridLayout *gridLayout = new QGridLayout;
  gridLayout->addWidget(nameLabel, 0, 0);
  gridLayout->addWidget(nameLineEdit, 0, 1);
  gridLayout->addWidget(emailLabel, 1, 0);
  gridLayout->addWidget(emailLineEdit, 1, 1);
  gridLayout->addWidget(ageLabel, 2, 0);
  gridLayout->addWidget(ageSpinBox, 2, 1);
  setLayout(gridLayout);

但是相比而言使用QFormLayout则简单的多,几行代码就可以搞定:

  QFormLayout *formLayout = new QFormLayout;
  formLayout->addRow(tr("&Name:"), nameLineEdit);
  formLayout->addRow(tr("&Email:"), emailLineEdit);
  formLayout->addRow(tr("&Age:"), ageSpinBox);
  setLayout(formLayout);
总结

综上,如果需要使用到’标签’和’组件’对的方式显示,那么使用QFormLayout布局要优于使用QGridLayout,另外QFormLayout还有以下两个好处:

  1. 根据不同操作系统和使用环境提供不同的显示方案
    例如,macOS Aqua和KDE准则规定标签应该右对齐,而Windows和GNOME应用程序通常使用左对齐。
  2. 支持换行
    对于显示区域较小的设备,QFormLayout可以设置为对长行进行换行,甚至对所有行进行换行。

结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值