title: Can't hide group box in Qt
body: <p>I'm learning GUI programming with qt. I have a problem with Shape-Changing Dialogs. Like this:
  <img src="https://i.stack.imgur.com/fTzzJ.jpg" alt="enter image description here"></p>
  
  <p>To do so, I added some signal-slot, like <code>connect(ui-&gt;pbMore,SIGNAL(toggled(bool)),ui-&gt;gbSecond,SLOT(setShown(bool)));</code> but it ain't work. I tried <code>setVisible(bool)</code> or set the connection on the GUI but no luck either.</p>
  
  <p>This is an example from the book C++ GUI Programming with Qt 4, Second Edition. They do the same way with me. So what's my mistake?</p>
  
  <p>Edit: add ui file and codes.</p>
  
  <p>dialogexpand.h</p>
  
  <pre><code>#ifndef DIALOGEXPAND_H
  #define DIALOGEXPAND_H
  
  #include &lt;QDialog&gt;
  
  namespace Ui {
      class DialogExpand;
  }
  
  class DialogExpand : public QDialog
  {
      Q_OBJECT
  
  public:
      explicit DialogExpand(QWidget *parent = 0);
      ~DialogExpand();
  
  private:
      Ui::DialogExpand *ui;
  public:
      void SortDialog(QWidget *parent = 0);
      void setColumnRange(QChar first, QChar last);
  };
  </code></pre>
  
  <p>dialogexpand.cpp</p>
  
  <pre><code>#include "dialogexpand.h"
  #include "ui_dialogexpand.h"
  
  DialogExpand::DialogExpand(QWidget *parent) :
      QDialog(parent),
      ui(new Ui::DialogExpand)
  {
      ui-&gt;setupUi(this);
  
  
  
      connect(ui-&gt;pbMore,SIGNAL(toggled(bool)),ui-&gt;gSec,SLOT(setVisible(bool)));
      connect(ui-&gt;pbMore,SIGNAL(toggled(bool)),ui-&gt;gbThird,SLOT(setShown(bool)));
  
  //    ui-&gt;gbThird-&gt;hide();
  //    ui-&gt;gSec-&gt;hide();
      SortDialog();
  }
  
  DialogExpand::~DialogExpand()
  {
      delete ui;
  }
  
  void DialogExpand::SortDialog(QWidget *parent)
  {
  
  //         ui-&gt;gSec-&gt;hide();
  //         ui-&gt;gbThird-&gt;hide();
           layout()-&gt;setSizeConstraint(QLayout::SetFixedSize);
           setColumnRange('A', 'Z');
  }
  
  void DialogExpand::setColumnRange(QChar first, QChar last)
  {
      ui-&gt;cbFirstColumn-&gt;clear();
      ui-&gt;cbSecColumn-&gt;clear();
      ui-&gt;cbSecColumn_2-&gt;clear();
      ui-&gt;cbFirstColumn-&gt;addItem(tr("None"));
      ui-&gt;cbSecColumn-&gt;addItem(tr("None"));
      ui-&gt;cbFirstColumn-&gt;setMinimumSize(
                  ui-&gt;cbSecColumn-&gt;sizeHint());
      QChar ch = first;
      while (ch &lt;= last) {
          ui-&gt;cbFirstColumn-&gt;addItem(QString(ch));
          ui-&gt;cbSecColumn-&gt;addItem(QString(ch));
          ui-&gt;cbSecColumn_2-&gt;addItem(QString(ch));
          ch = ch.unicode() + 1;
      }
  }
  </code></pre>
  
  <p>ui file</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;ui version="4.0"&gt;
   &lt;class&gt;DialogExpand&lt;/class&gt;
   &lt;widget class="QDialog" name="DialogExpand"&gt;
    &lt;property name="geometry"&gt;
     &lt;rect&gt;
      &lt;x&gt;0&lt;/x&gt;
      &lt;y&gt;0&lt;/y&gt;
      &lt;width&gt;354&lt;/width&gt;
      &lt;height&gt;307&lt;/height&gt;
     &lt;/rect&gt;
    &lt;/property&gt;
    &lt;property name="windowTitle"&gt;
     &lt;string&gt;Dialog&lt;/string&gt;
    &lt;/property&gt;
    &lt;layout class="QGridLayout" name="gridLayout_4"&gt;
     &lt;item row="0" column="0"&gt;
      &lt;widget class="QGroupBox" name="gbFirst"&gt;
       &lt;property name="title"&gt;
        &lt;string&gt;&amp;amp;Primary key&lt;/string&gt;
       &lt;/property&gt;
       &lt;layout class="QGridLayout" name="gridLayout"&gt;
        &lt;item row="0" column="0"&gt;
         &lt;widget class="QLabel" name="lbColumn"&gt;
          &lt;property name="text"&gt;
           &lt;string&gt;Column&lt;/string&gt;
          &lt;/property&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
        &lt;item row="0" column="1"&gt;
         &lt;widget class="QComboBox" name="cbFirstColumn"&gt;
          &lt;item&gt;
           &lt;property name="text"&gt;
            &lt;string&gt;None&lt;/string&gt;
           &lt;/property&gt;
          &lt;/item&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
        &lt;item row="0" column="2"&gt;
         &lt;spacer name="horizontalSpacer"&gt;
          &lt;property name="orientation"&gt;
           &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
          &lt;/property&gt;
          &lt;property name="sizeHint" stdset="0"&gt;
           &lt;size&gt;
            &lt;width&gt;109&lt;/width&gt;
            &lt;height&gt;20&lt;/height&gt;
           &lt;/size&gt;
          &lt;/property&gt;
         &lt;/spacer&gt;
        &lt;/item&gt;
        &lt;item row="1" column="0"&gt;
         &lt;widget class="QLabel" name="lbOrder"&gt;
          &lt;property name="text"&gt;
           &lt;string&gt;Order&lt;/string&gt;
          &lt;/property&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
        &lt;item row="1" column="1" colspan="2"&gt;
         &lt;widget class="QComboBox" name="cbSecColumn_2"&gt;
          &lt;item&gt;
           &lt;property name="text"&gt;
            &lt;string&gt;Ascending&lt;/string&gt;
           &lt;/property&gt;
          &lt;/item&gt;
          &lt;item&gt;
           &lt;property name="text"&gt;
            &lt;string&gt;Descending&lt;/string&gt;
           &lt;/property&gt;
          &lt;/item&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
       &lt;/layout&gt;
      &lt;/widget&gt;
     &lt;/item&gt;
     &lt;item row="0" column="1" rowspan="2"&gt;
      &lt;layout class="QVBoxLayout" name="verticalLayout"&gt;
       &lt;item&gt;
        &lt;widget class="QPushButton" name="pbOk"&gt;
         &lt;property name="text"&gt;
          &lt;string&gt;&amp;amp;OK&lt;/string&gt;
         &lt;/property&gt;
        &lt;/widget&gt;
       &lt;/item&gt;
       &lt;item&gt;
        &lt;widget class="QPushButton" name="pbCancel"&gt;
         &lt;property name="text"&gt;
          &lt;string&gt;&amp;amp;Cancel&lt;/string&gt;
         &lt;/property&gt;
        &lt;/widget&gt;
       &lt;/item&gt;
       &lt;item&gt;
        &lt;spacer name="verticalSpacer"&gt;
         &lt;property name="orientation"&gt;
          &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
         &lt;/property&gt;
         &lt;property name="sizeType"&gt;
          &lt;enum&gt;QSizePolicy::Expanding&lt;/enum&gt;
         &lt;/property&gt;
         &lt;property name="sizeHint" stdset="0"&gt;
          &lt;size&gt;
           &lt;width&gt;20&lt;/width&gt;
           &lt;height&gt;13&lt;/height&gt;
          &lt;/size&gt;
         &lt;/property&gt;
        &lt;/spacer&gt;
       &lt;/item&gt;
       &lt;item&gt;
        &lt;widget class="QPushButton" name="pbMore"&gt;
         &lt;property name="text"&gt;
          &lt;string&gt;&amp;amp;More&lt;/string&gt;
         &lt;/property&gt;
        &lt;/widget&gt;
       &lt;/item&gt;
      &lt;/layout&gt;
     &lt;/item&gt;
     &lt;item row="1" column="0"&gt;
      &lt;spacer name="verticalSpacer_2"&gt;
       &lt;property name="orientation"&gt;
        &lt;enum&gt;Qt::Vertical&lt;/enum&gt;
       &lt;/property&gt;
       &lt;property name="sizeHint" stdset="0"&gt;
        &lt;size&gt;
         &lt;width&gt;20&lt;/width&gt;
         &lt;height&gt;59&lt;/height&gt;
        &lt;/size&gt;
       &lt;/property&gt;
      &lt;/spacer&gt;
     &lt;/item&gt;
     &lt;item row="2" column="0"&gt;
      &lt;widget class="QGroupBox" name="gSec"&gt;
       &lt;property name="title"&gt;
        &lt;string&gt;&amp;amp;Sec key&lt;/string&gt;
       &lt;/property&gt;
       &lt;layout class="QGridLayout" name="gridLayout_2"&gt;
        &lt;item row="0" column="0"&gt;
         &lt;widget class="QLabel" name="lbColumn_2"&gt;
          &lt;property name="text"&gt;
           &lt;string&gt;Column&lt;/string&gt;
          &lt;/property&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
        &lt;item row="0" column="1"&gt;
         &lt;widget class="QComboBox" name="cbSecColumn"&gt;
          &lt;item&gt;
           &lt;property name="text"&gt;
            &lt;string&gt;None&lt;/string&gt;
           &lt;/property&gt;
          &lt;/item&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
        &lt;item row="0" column="2"&gt;
         &lt;spacer name="horizontalSpacer_2"&gt;
          &lt;property name="orientation"&gt;
           &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
          &lt;/property&gt;
          &lt;property name="sizeHint" stdset="0"&gt;
           &lt;size&gt;
            &lt;width&gt;40&lt;/width&gt;
            &lt;height&gt;20&lt;/height&gt;
           &lt;/size&gt;
          &lt;/property&gt;
         &lt;/spacer&gt;
        &lt;/item&gt;
        &lt;item row="1" column="0"&gt;
         &lt;widget class="QLabel" name="lbOrder_2"&gt;
          &lt;property name="text"&gt;
           &lt;string&gt;Order&lt;/string&gt;
          &lt;/property&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
        &lt;item row="1" column="1" colspan="2"&gt;
         &lt;widget class="QComboBox" name="cbSecOrder"&gt;
          &lt;item&gt;
           &lt;property name="text"&gt;
            &lt;string&gt;Ascending&lt;/string&gt;
           &lt;/property&gt;
          &lt;/item&gt;
          &lt;item&gt;
           &lt;property name="text"&gt;
            &lt;string&gt;Descending&lt;/string&gt;
           &lt;/property&gt;
          &lt;/item&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
       &lt;/layout&gt;
      &lt;/widget&gt;
     &lt;/item&gt;
     &lt;item row="3" column="0"&gt;
      &lt;widget class="QGroupBox" name="gbThird"&gt;
       &lt;property name="title"&gt;
        &lt;string&gt;&amp;amp;Teriatriy key&lt;/string&gt;
       &lt;/property&gt;
       &lt;layout class="QGridLayout" name="gridLayout_3"&gt;
        &lt;item row="0" column="0"&gt;
         &lt;widget class="QLabel" name="lbColumn_3"&gt;
          &lt;property name="text"&gt;
           &lt;string&gt;Column&lt;/string&gt;
          &lt;/property&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
        &lt;item row="0" column="1"&gt;
         &lt;widget class="QComboBox" name="cbThirdColumn"&gt;
          &lt;item&gt;
           &lt;property name="text"&gt;
            &lt;string&gt;None&lt;/string&gt;
           &lt;/property&gt;
          &lt;/item&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
        &lt;item row="0" column="2"&gt;
         &lt;spacer name="horizontalSpacer_3"&gt;
          &lt;property name="orientation"&gt;
           &lt;enum&gt;Qt::Horizontal&lt;/enum&gt;
          &lt;/property&gt;
          &lt;property name="sizeHint" stdset="0"&gt;
           &lt;size&gt;
            &lt;width&gt;40&lt;/width&gt;
            &lt;height&gt;20&lt;/height&gt;
           &lt;/size&gt;
          &lt;/property&gt;
         &lt;/spacer&gt;
        &lt;/item&gt;
        &lt;item row="1" column="0"&gt;
         &lt;widget class="QLabel" name="lbOrder_3"&gt;
          &lt;property name="text"&gt;
           &lt;string&gt;Order&lt;/string&gt;
          &lt;/property&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
        &lt;item row="1" column="1" colspan="2"&gt;
         &lt;widget class="QComboBox" name="cbThirdOrder"&gt;
          &lt;item&gt;
           &lt;property name="text"&gt;
            &lt;string&gt;Ascending&lt;/string&gt;
           &lt;/property&gt;
          &lt;/item&gt;
          &lt;item&gt;
           &lt;property name="text"&gt;
            &lt;string&gt;Descending&lt;/string&gt;
           &lt;/property&gt;
          &lt;/item&gt;
         &lt;/widget&gt;
        &lt;/item&gt;
       &lt;/layout&gt;
      &lt;/widget&gt;
     &lt;/item&gt;
    &lt;/layout&gt;
   &lt;/widget&gt;
   &lt;resources/&gt;
   &lt;connections&gt;
    &lt;connection&gt;
     &lt;sender&gt;pbOk&lt;/sender&gt;
     &lt;signal&gt;clicked()&lt;/signal&gt;
     &lt;receiver&gt;DialogExpand&lt;/receiver&gt;
     &lt;slot&gt;accept()&lt;/slot&gt;
     &lt;hints&gt;
      &lt;hint type="sourcelabel"&gt;
       &lt;x&gt;304&lt;/x&gt;
       &lt;y&gt;22&lt;/y&gt;
      &lt;/hint&gt;
      &lt;hint type="destinationlabel"&gt;
       &lt;x&gt;268&lt;/x&gt;
       &lt;y&gt;104&lt;/y&gt;
      &lt;/hint&gt;
     &lt;/hints&gt;
    &lt;/connection&gt;
    &lt;connection&gt;
     &lt;sender&gt;pbCancel&lt;/sender&gt;
     &lt;signal&gt;clicked()&lt;/signal&gt;
     &lt;receiver&gt;DialogExpand&lt;/receiver&gt;
     &lt;slot&gt;reject()&lt;/slot&gt;
     &lt;hints&gt;
      &lt;hint type="sourcelabel"&gt;
       &lt;x&gt;324&lt;/x&gt;
       &lt;y&gt;54&lt;/y&gt;
      &lt;/hint&gt;
      &lt;hint type="destinationlabel"&gt;
       &lt;x&gt;341&lt;/x&gt;
       &lt;y&gt;111&lt;/y&gt;
      &lt;/hint&gt;
     &lt;/hints&gt;
    &lt;/connection&gt;
   &lt;/connections&gt;
  &lt;/ui&gt;
  </code></pre>