【问题标题】:Hide a tab previously added to Qt TabWidget隐藏以前添加到 Qt TabWidget 的选项卡
【发布时间】:2010-09-17 11:56:41
【问题描述】:

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

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

_mytab->hide() 

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

我使用的是 Qt 3.3

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

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

    _myTabDlg->removePage(_mytab);
    

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

    【讨论】:

      【解决方案2】:

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

      现在是数据。

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

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

      但第一个解决方案很可能适合您。 希望这会有所帮助。

      -阿琼

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-22
        • 2010-11-19
        • 1970-01-01
        • 2013-01-21
        • 2018-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多