6

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

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

_mytab->hide() 

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

我正在使用 Qt 3.3

4

2 回答 2

10

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

现在这里是数据。

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 来引用它。根据您的说法,在您的情况下,选项卡确实是在设计时静态添加的。

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

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

-阿琼

于 2008-10-16T13:00:29.887 回答
7

我会使用 QTabDialog::r​​emovePage(QWidget* pTabPage) ,它不会删除你想要的 pTabPage。

_myTabDlg->removePage(_mytab);

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

于 2008-10-16T12:53:44.270 回答