【发布时间】:2015-06-16 02:32:54
【问题描述】:
我正在尝试构建一个 GUI,它将:
- 使用描述特定类型问题的参数加载文件。
- 根据文件的参数,仅显示
QTabwidget中的某些选项卡(Qt Designer 中预定义的许多.ui)
我计划制作一个QTabwidget,例如 10 个选项卡,但根据加载的参数,只有一个应该可见。启用某些选项卡不是一个选项,因为它需要很多空间并且禁用的选项卡是灰色的。我不想看到禁用的标签。
删除选项卡可能是一个选项,但索引与特定选项卡无关,因此我必须注意索引的变化。此外,如果用户加载另一个具有不同参数的文件,则应添加一个好的选项卡并删除当前的选项卡。
我的问题是:
- 如何有效地做到这一点?
- 使用任何其他类型的小部件会更好吗?
- 在 Qt 设计器中,是否可以一个接一个地定义多个小部件,然后将好的小部件推到前面。如果是,如何?以及如何编辑和更改其中任何一个?
- 如果使用
RemoveTab,如何在选项卡上使用指针而不是索引?
我使用 PyQt4
【问题讨论】:
-
您可以只创建一个 QTabwidget 并根据需要添加/删除选项卡吗?您似乎在问这是否可能,是的,这当然是可能的。您应该在pyqt.sourceforge.net/Docs/PyQt4/qtabwidget.html 阅读有关 QTabwidgets 的信息。您可以使用
insertTab()和removeTab()方法插入/删除选项卡。 -
@ballsdotballs:感谢分享链接。通常我会在提问之前研究所有我能找到的东西。从我的帖子中可以明显看出,由于索引,我认为添加和删除是一种非优雅的解决方案,我询问了如何在已删除选项卡上保存指针以供以后添加。
-
如果您希望一次只显示一个选项卡,而用户永远看不到其他选项卡,为什么还要使用选项卡小部件?为什么不只拥有 N 个不同的小部件,并且只显示您希望用户看到的那个。或者下面的@ekhumoro 的解决方案,它将小部件分成页面。但是您仍然需要添加/删除页面,而您似乎不想这样做。
-
我选择 Qtabwidget 是因为它很容易逐个编辑选项卡:我想避免使用 tabwidget 但我不知道如何在 Qt 设计器中制作(或编辑)重叠的小部件并显示在前面我想要的:
标签: python pyqt qt-designer qtabwidget