我有一个对话框,其中包含一个Qt TabWidget并添加了多个选项卡。隐藏之前添加到Qt TabWidget的选项卡
我想隐藏其中一个选项卡。
_mytab->hide()
不起作用。我不想仅从.ui文件中删除选项卡及其所有小部件,因为其他代码依赖于选项卡内的小部件。但是,生成标签代码会很好,但在生成的uic_mydialog.cpp中不会生成:: insertTab。设置ui文件中的隐藏属性也不起作用。
我使用Qt 3.3
我有一个对话框,其中包含一个Qt TabWidget并添加了多个选项卡。隐藏之前添加到Qt TabWidget的选项卡
我想隐藏其中一个选项卡。
_mytab->hide()
不起作用。我不想仅从.ui文件中删除选项卡及其所有小部件,因为其他代码依赖于选项卡内的小部件。但是,生成标签代码会很好,但在生成的uic_mydialog.cpp中不会生成:: insertTab。设置ui文件中的隐藏属性也不起作用。
我使用Qt 3.3
我会用QTabDialog :: removePage(QWidget的* pTabPage),它不会删除pTabPage,这是你想要的。
_myTabDlg->removePage(_mytab);
我正在使用它,它工作正常!
我遇到了同样的问题。我正在使用以下方法。
现在这里是数据。
genTab是我QTabWidget
TABX的名字是我想删除的选项卡的名称。
(注意,这是在Tab插件的第二个标签。因此,我将使用“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