PyQT Qtabwidget 添加、删除、隐藏、显示特定标签

PyQT Qtabwidget add, remove, hide, show certain tab

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

  1. 加载带有描述特定类型问题的参数的文件。
  2. 根据文件的参数,仅显示 QTabwidget 中的某些选项卡(Qt Designer .ui 中预定义的许多选项卡)

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

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

我的问题是:

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

我使用 PyQt4

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

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

页面在运行时可以 added/removed addWidget/removeWidget:

index = self.stack.addWidget(self.page1)
self.stack.removeWidget(self.page1)

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

我看到这个帖子有点旧了。但我希望这仍然会有所帮助。 您可以使用 remove() 方法 "hide" 选项卡。没有办法真正将它们隐藏在 pyqt4 中。当您删除它时,它就会从 ui 中消失。但在后端,包含所有设置的选项卡对象仍然存在。我相信你能找到一种方法来即兴创作。试一试!