在QTabWidget上显示/隐藏子选项卡

时间:2013-08-23 04:27:02

标签: c++ qt qtabwidget

假设我有一个包含5个子标签的QTabWidget。现在,我想通过以下代码

在5个子标签中的一个中显示/隐藏子标签
ui->twListTabs->widget(0)->hide();           // Hide first sub-tab

但这对我不起作用。你有任何解决方案吗?

谢谢!

1 个答案:

答案 0 :(得分:9)

您只能选择使用:

void QTabWidget::removeTab(int index)

您需要将指针存储到选项卡中的QWidget,以便以后可以插入它。

你可以,例如做类似的事情:

class TabWidget : public QTabWidget
{
   Q_OBJECT

      enum tabwidgets {tabwidget1,tabwidget2,...,number_of_tabwidgets};
      QWidget* widgets_[number_of_tabwidgets];
   public:
      TabWidget(QWidget* parent=0)
      : QWidget(parent)
      {
         for(int i(0);i<number_of_tabwidgets;++i)
     {
        switch(i)
        {
           case tabwidget1:
              insertTab(i,widgets_[i]=new TabWidget1,QString::number(i));
           ....
        }
     }
      }
};