隐藏之前添加到Qt TabWidget的选项卡

use*_*434 6 c++ qt

我有一个对话框,其中包含一个Qt TabWidget,其中添加了许多选项卡.

我想隐藏其中一个标签.

_mytab->hide() 
Run Code Online (Sandbox Code Playgroud)

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

我正在使用Qt 3.3

AMM*_*AMM 10

我遇到了同样的问题.我使用以下方法.

现在这里是数据.

genTab是我的QTabWidget的名称

tabX是我要删除的选项卡的名称.

(请注意,这是Tab Widget中的第二个选项卡.因此,我将使用"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.
Run Code Online (Sandbox Code Playgroud)

在这里,请注意,如果在设计时间中静态添加了选项卡,则很容易执行此操作.因为我们将有一个与选项卡关联的对象名称,因此我们可以使用ui.tabX来引用它.根据您的说法,在您的情况下,标签确实在设计时间内静态添加.

但是,如果要动态添加选项卡,则可能需要在列表中维护选项卡,然后为deletedTabs设置另一个列表.

但第一种解决方案很可能对您有用.希望这可以帮助.

-Arjun


Jér*_*ôme 7

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

_myTabDlg->removePage(_mytab);
Run Code Online (Sandbox Code Playgroud)

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