Я пытаюсь удалить две кнопки инструментов и добавить другие виджеты и добавить hboxlayout с использованием четного фильтра, если окно отображается или скрыто. Проблема заключается в том, что я удаляю проставку горизонтальной, две кнопки связаны успешно, но когда я добавляю виджет, между кнопкой инструмента и виджетами есть пробел, как показано на рисунке. как бы удалить это пространство?пространство между двумя кнопками инструментов и hboxlayout
здесь инициализация
setWindowTitle(tr("Points of Interest"));
m_splitter->setContentsMargins(0, 0, 0, 3);
m_gridLayout = new QGridLayout(this);
m_gridLayout->addWidget(m_splitter, 0, 0, 1, 1);
m_hBoxLayout = new QHBoxLayout(this);
m_gridLayout->addLayout(m_hBoxLayout, 1, 0, 1, 1);
m_hBoxLayout->addWidget(m_myPoiButton);
m_hBoxLayout->addStretch();
m_hBoxLayout->addWidget(m_myPoiFilterButton);
m_gridLayout->setVerticalSpacing(0);
здесь код и изображение:
if (event->type() == QEvent::Show)
{
if (obj == m_poiItemWidget)
{
bool visibleName = false, visibleHeight = false, visibleRange = false;
visibleName = m_namePoiFilter.isVisible();
visibleHeight = m_widgetHeight.isVisible();
visibleRange = m_widgetRange.isVisible();
m_namePoiFilter.setVisible(visibleName);
m_widgetHeight.setVisible(visibleHeight);
m_widgetRange.setVisible(visibleRange);
m_hBoxLayout->addWidget(m_myPoiButton);
for (int i = 0; i < m_hBoxLayout->count(); ++i)
{
QSpacerItem *spacer = m_hBoxLayout->itemAt(i)->spacerItem();
if (spacer)
{
delete m_hBoxLayout->takeAt(i);
break;
}
}
m_hBoxLayout->addWidget(m_myPoiFilterButton);
m_hBoxLayout->addStretch();
m_hBoxLayout->addWidget(&m_namePoiFilter);
m_hBoxLayout->addWidget(&m_widgetHeight);
m_hBoxLayout->addWidget(&m_widgetRange);
}
}
if (event->type() == QEvent::Hide)
{
if (obj == m_poiItemWidget)
{
bool visibleName = false, visibleHeight = false, visibleRange = false;
visibleName = m_namePoiFilter.isVisible();
visibleHeight = m_widgetHeight.isVisible();
visibleRange = m_widgetRange.isVisible();
m_namePoiFilter.setVisible(visibleName);
m_widgetHeight.setVisible(visibleHeight);
m_widgetRange.setVisible(visibleRange);
for (int i = 0; i < m_hBoxLayout->count(); ++i)
{
QSpacerItem *spacer = m_hBoxLayout->itemAt(i)->spacerItem();
if (spacer)
{
delete m_hBoxLayout->takeAt(i);
break;
}
}
m_hBoxLayout->addWidget(m_myPoiButton);
m_hBoxLayout->addStretch();
m_hBoxLayout->addWidget(m_myPoiFilterButton);
m_hBoxLayout->addWidget(&m_namePoiFilter);
m_hBoxLayout->addWidget(&m_widgetHeight);
m_hBoxLayout->addWidget(&m_widgetRange);
}
}
Unfortuantely, это Didn» решить oblem. Между QToolbutton еще есть пробел – andre