题
我有一个对话框,其中包含一个Qt TabWidget,其中添加了许多选项卡。
我想隐藏其中一个标签。
_mytab->hide()
不起作用。我不想只是从.ui文件中删除选项卡及其所有小部件,因为其他代码依赖于选项卡中的小部件。但是,生成选项卡代码会很好,但在生成的uic_mydialog.cpp中不能生成:: insertTab。在ui文件中设置hidden属性也不起作用。
我正在使用Qt 3.3
解决方案
我会使用不删除pTabPage的QTabDialog :: removePage(QWidget * pTabPage),这就是你想要的。
_myTabDlg->removePage(_mytab);
我正在使用它并且工作正常!
其他提示
我遇到了同样的问题。我使用以下方法。
现在这里是数据。
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.
请注意,如果您在设计时间中静态添加了标签,则很容易执行此操作。因为我们将有一个与选项卡关联的对象名称,因此我们可以使用ui.tabX来引用它。根据您的说法,在您的情况下,标签确实在设计时间内静态添加。
但是,如果要动态添加选项卡,则可能需要在列表中维护选项卡,然后为deletedTabs添加另一个列表。
但第一种解决方案很可能对您有用。 希望这会有所帮助。
-Arjun
不隶属于 StackOverflow