QVBoxLayout中小部件之间的空格

Aid*_*n.T 13 qt spacing

我正在尝试使用Qt5.0.1创建一个登录表单.我创建了两个小部件,我将标签和行编辑放在其中一个中,而我的按钮放在另一个中.然后我将这两个小部件放在QVBoxLayout中,但布局中两个小部件之间的空间不仅仅是用途.我尝试了setSpacing和setContentsMargin,但它们不能用于此程序.

vhandle->setSpacing(0);
vhandle->setMargin(0);
vhandle->setContentsMargins(0,0,0,0);
vhandle->addWidget(handle,0, Qt::AlignTop);
vhandle->addWidget(handle2,0, Qt::AlignTop);
Run Code Online (Sandbox Code Playgroud)

但两个小部件之间的空间没有任何变化:

http://i.stack.imgur.com/R33MM.png

我该怎么办?

And*_*ter 15

问题不是QVboxLayout容器小部件布局的边距设置,而是容器小部件布局的边距设置以及QVBoxLayout的间距设置.你已经将间距设置为0,这应该没问题.另外,假设upperWidgetLayout是上部窗口小部件lowerWidgetLayout的布局和下部窗口小部件的布局,请尝试

upperWidgetLayout->setContentsMargins(-1, -1, -1, 0);
lowerWidgetLayout->setContentsMargin(-1, 0, -1, -1);
Run Code Online (Sandbox Code Playgroud)

这会将上部窗口小部件布局的下边距和下部窗口小部件布局的上边距设置为0,这样两个窗口小部件的内容之间就没有空格:

对话框布局

暂时着色各种小部件通常是追踪此类问题的好方法.您还可以使用Qt Designer设计UI,并查看正在生成的源代码(或直接在项目中使用.ui文件).