我有一个对话框,其中包含一个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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top