首页 > 解决方案 > PyQt5 QTabs 是唯一的解决方案

问题描述

我的 GUI 应用程序需要运行多个应用程序。想象一个类似于选项卡的左侧(或顶部)菜单,用户可以在其中选择一个选项卡并与 application_x 交互。看起来 QTab 可以做到这一点。我的问题是:

  1. QTabs 是唯一的解决方案吗?
  2. 我可以将标签放在左侧(相对于顶部),如果可以的话怎么办?
  3. 所有选项卡(它们各自的应用程序/进程)可以同时运行(并发)吗?或者只有暴露的选项卡将运行。

标签: pythonpython-3.xpyqtpyqt5

解决方案


不必使用选项卡在同一个应用程序中执行多个任务。小部件是不实现执行其他任务的逻辑的视觉元素,它们分别用于从用户获取和向用户显示信息。

在 QTabWidget 的情况下,它是一个可以包含多个小部件并且只显示一个小部件的小部件。

有了以上内容:

1. QTabs 是唯一的解决方案吗?

如果您的问题是要在同一个应用程序中执行 n 个任务,您必须使用选项卡,那么答案是否定的,因为只有一个窗口的应用程序可以执行 n 个任务,所以没有必要。

2. 我可以把标签放在左边(相对于顶部)吗?如果可以的话怎么办?是的,您可以将选项卡放在右侧:

from PyQt5 import QtWidgets


if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)
    w = QtWidgets.QTabWidget(tabPosition=QtWidgets.QTabWidget.West)
    for i in range(5):
        widget = QtWidgets.QWidget()
        w.addTab(widget, "tab-{}".format(i))
    w.resize(640, 480)
    w.show()
    sys.exit(app.exec_())

在此处输入图像描述

3.所有选项卡(它们各自的应用程序/进程)可以同时运行(并发)吗?或者只有暴露的选项卡将运行。

因为它表明执行的任务数量不取决于选项卡。因此,除了系统限制(RAM、最大线程数等)外,您始终可以执行您想要的任务。


推荐阅读