本文主要是介绍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还有以下两个好处:
- 根据不同操作系统和使用环境提供不同的显示方案
例如,macOS Aqua和KDE准则规定标签应该右对齐,而Windows和GNOME应用程序通常使用左对齐。 - 支持换行
对于显示区域较小的设备,QFormLayout可以设置为对长行进行换行,甚至对所有行进行换行。
结束。
这篇关于QFormLayout布局该什么时候使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!