2008-10-16 66 views
6

我有一个对话框,其中包含一个Qt TabWidget并添加了多个选项卡。隐藏之前添加到Qt TabWidget的选项卡

我想隐藏其中一个选项卡。

_mytab->hide() 

不起作用。我不想仅从.ui文件中删除选项卡及其所有小部件,因为其他代码依赖于选项卡内的小部件。但是,生成标签代码会很好,但在生成的uic_mydialog.cpp中不会生成:: insertTab。设置ui文件中的隐藏属性也不起作用。

我使用Qt 3.3

回答

6

我会用QTabDialog :: removePage(QWidget的* pTabPage),它不会删除pTabPage,这是你想要的。

_myTabDlg->removePage(_mytab); 

我正在使用它,它工作正常!

10

我遇到了同样的问题。我正在使用以下方法。

现在这里是数据。

genTab是我QTabWidget

TABX的名字是我想删除的选项卡的名称。

(注意,这是在Tab插件的第二个标签。因此,我将使用“1”作为索引来引用该选项卡)

的代码删除和补充的是如下面。

ui.genTab->removeTab(1); // removes the tab at the index 1 which is the second tab from left 


ui.genTab->insertTab(1, ui.tabX, "<Name of TabX>"); // The tab is added back. 

在此,请注意,如果您在设计时间内静态添加了选项卡,则很容易做到这一点。因为我们将有一个与该选项卡关联的对象名称,因此我们可以使用ui.tabX来引用它。从你说的话来看,在你的情况下,标签确实是在设计时被静态添加的。

但是,如果您要动态添加选项卡,那么您可能必须在列表中维护这些选项卡,然后为deletedTabs创建另一个列表。

但是第一种解决方案很可能适用于您。 希望这有助于。

-Arjun

相关问题