PyQT Qtabwidget添加,删除,隐藏,显示某些选项卡

时间:2015-04-10 11:28:54

标签: pyqt qtabwidget

我正在尝试构建一个GUI:

  1. 加载包含描述某类问题的参数的文件。
  2. 根据文件的参数,仅显示QTabwidget中的某个标签(Qt Designer中预定义的许多标签.ui
  3. 我计划使用10个标签创建一个QTabwidget,但根据加载的参数,只能显示一个标签。启用某个选项卡不是一个选项,因为它需要很多空间而禁用的选项卡是灰色的。我不想看到禁用标签。

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

    我的问题是:

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

2 个答案:

答案 0 :(得分:3)

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

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

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

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

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

答案 1 :(得分:0)

我看到这个帖子有点老了。但我希望这仍然会有所帮助。 您可以使用remove()方法“隐藏”选项卡。没有办法真正隐藏它们在pyqt4中。当你删除它时,它已经离开了ui。但在后端,包含所有设置的选项卡对象仍然存在。我相信你能找到一种方法来即兴发挥它。试一试!