我在父母中对一组小部件进行分组,然后通过隐藏/显示父级来控制这些小部件的可见性/流量。这是实现我想要做的事情的好方法吗?这是代码:
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
这个解决方案的问题是孩子的体积略有缩小,我认为这是由于父母的一些填充或边框。理想情况下,子项应该看起来好像它们不包含在中间对象中,而是与父项一起流动。在这种情况下,儿童的横向尺寸不应受到影响。
答案 0 :(得分:1)
http://doc.qt.io/qt-5/qtwidgets-dialogs-extension-example.html
此示例显示您的方法是正确的。使用小部件包含要隐藏的元素,等等。
如果您希望边距/内容边距/填充较小,请更改它。
// in finddialog.cpp
extensionLayout->setMargin(0);
要快速建模要更改的属性以使其看起来正确,请尝试在Qt Designer中进行布局,并修改属性编辑器以获得您想要的外观。
希望有所帮助。