Пространство между виджетами в QVBoxLayout

Я пытаюсь написать в форме с Qt5.0.1. Я создал 2 виджета, и я поместил свои метки и изменения строки в один из них, а мою кнопку в другой. Затем я помещаю эти 2 виджета в 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);

но ничего не изменилось в пространстве между двумя виджетами:

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

что делать?

1 ответов


проблема не в настройках маржи QVboxLayout, но настройки полей макета виджетов контейнера и настройки интервалов QVBoxLayout. Вы уже установили интервал в 0, это должно быть хорошо. Кроме того, предполагается, что upperWidgetLayout это макет верхнего виджета и lowerWidgetLayout макет Нижнего виджета, попробуйте

upperWidgetLayout->setContentsMargins(-1, -1, -1, 0);
lowerWidgetLayout->setContentsMargin(-1, 0, -1, -1);

это устанавливает нижнее поле макета верхнего виджета и верхнее поле макета Нижнего виджета в 0, так что нет пространства между содержимым двух виджетов:

Dialog Layout

временное окрашивание различных виджетов, как правило, является хорошим подходом для отслеживания таких проблем. Вы также можете использовать Qt Designer для разработки пользовательского интерфейса и взглянуть на исходный код, который генерируется (или использовать .ui файл непосредственно в вашем проекте).