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