PyQT Qtabwidget 添加、删除、隐藏、显示特定选项卡

Stj*_*pan 1 python pyqt qt-designer qtabwidget

我正在尝试构建一个 GUI,它将:

  1. 加载带有描述特定类型问题的参数的文件。
  2. 基于文件的参数,显示只有特定的标签QTabwidget(很多在Qt Designer中预定义的.ui

我打算制作一个QTabwidget,比如 10 个标签,但根据加载的参数,只有一个应该是可见的。启用某些选项卡不是一个选项,因为它需要很多空间并且禁用的选项卡是灰色的。我不想看到禁用的标签。

删除选项卡可能是一个选项,但索引与特定选项卡无关,因此我必须处理索引的变化。此外,如果用户加载具有不同参数的另一个文件,则应添加一个好的选项卡并删除当前的选项卡。

我的问题是:

  1. 如何有效地做到这一点?
  2. 使用任何其他类型的小部件会更好吗?
  3. 在 Qt 设计器中,是否可以一个接一个地定义许多小部件,然后将好的一个推到前面。如果是,如何?以及如何编辑和更改其中任何一个?
  4. 如果使用RemoveTab,如何在选项卡上使用指针而不是索引?

我使用 PyQt4

ekh*_*oro 5

使用 a QStackedWidget,它与选项卡小部件完全相同,但没有选项卡栏(您不需要)。

这个小部件在 Qt 设计器中可用。上下文菜单有几个用于添加/删除页面等的命令。请注意,右上角的箭头按钮只是为了方便起见:它们不会出现在您的应用程序中。

可以在运行时添加/删除页面addWidget/removeWidget

index = self.stack.addWidget(self.page1)
self.stack.removeWidget(self.page1)
Run Code Online (Sandbox Code Playgroud)

您可以使用索引或小部件引用访问页面。