我将一组小部件分组在一个父级中,然后通过隐藏/显示父级来控制这些小部件的可见性/流程。这是实现我要完成的目标的好方法吗?这是代码:
QVBoxLayout* l = new QVBoxLayout(this);
// .....
QWidget* toolset_frame = new QWidget(this);
{
QVBoxLayout* l = new QVBoxLayout(toolset_frame);
l->addWidget(new QLabel(tr("Stuff")));
this->Toolset = new QLineEdit(toolset_frame);
l->addWidget(this->Toolset);
}
l->addWidget(toolset_frame);
// Call toolset_frame->hide() and this hides everything inside the parent
这种解决方案的问题是孩子的尺寸会略微缩小,我认为这是由于父级中的某些填充或边框造成的。理想情况下,子级应该看起来像它们不包含在中间对象中,而是与父级一起流动。在这种情况下,孩子的水平尺寸不会受到影响。
http://doc.qt.io/qt-5/qtwidgets-dialogs-extension-example.html
此示例表明您的方法是正确的。使用小部件包含要隐藏的元素,依此类推。
如果要减少边距/内容边距/填充,请进行更改。
// in finddialog.cpp
extensionLayout->setMargin(0);
为了快速原型化要更改的属性以使其看起来正确,请尝试在Qt Designer中对其进行布局,然后修改属性编辑器以获取所需的外观。
希望能有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句