2016-12-21 5 views
1

私は、2つのツールボタンを削除し、他のウィジェットを追加し、ウィンドウが表示されているか隠れている場合は偶数フィルタを使用してhboxlayoutを追加しようとしています。 問題は、スペーサーを水平に取り除くと2つのボタンがうまくつながっていますが、ウィジェットを追加すると、図のようにツールボタンとウィジェットの間にスペースがあります。どのように私はそのスペースを削除するだろうか?ここ2つのツールボタンと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); 

あるコードや画像です:

enter image description here

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); 

     } 

    } 

答えて

0

がUnfortuantely

m_gridLayout->setContentsMargins(0,0,0,0); 
m_hBoxLayout->setContentsMargins(0,0,0,0); 
+0

初期設定でこれを試してみてください、これは」didnのprを解決するオベレム。 QToolbuttonの間にはまだスペースがあります – andre

関連する問題