我有一个对话框,其中包含一个 Qt TabWidget,其中添加了许多选项卡。
我想隐藏其中一个选项卡。
_mytab->hide()
不起作用。我不想只从 .ui 文件中删除选项卡及其所有小部件,因为其他代码依赖于选项卡中的小部件。但是,在生成的 uic_mydialog.cpp 中生成选项卡代码但不知何故不是 ::insertTab 会很好。在 ui 文件中设置 hidden 属性也不起作用。
我正在使用 Qt 3.3
我遇到了同样的问题。我正在使用以下方法。
现在这里是数据。
genTab 是我的 QTabWidget 的名称
tabX 是我要删除的选项卡的名称。
(请注意,这是选项卡小部件中的第二个选项卡。因此,我将使用“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 来引用它。根据您的说法,在您的情况下,选项卡确实是在设计时静态添加的。
但是,如果您要动态添加选项卡,那么您可能必须在列表中维护选项卡,然后为已删除的选项卡创建另一个列表。
但是第一个解决方案很可能对您有用。希望这可以帮助。
-阿琼
我会使用 QTabDialog::removePage(QWidget* pTabPage) ,它不会删除你想要的 pTabPage。
_myTabDlg->removePage(_mytab);
我正在使用它,它工作正常!