PyQt - 从外部进行选项卡管理 Class

PyQt - Tab Management from Outside Class

我正在使用 PyQt 设计一个应用程序,它将管理多个 Selenium 实例。每个实例都有一个带有独特信息和控件的 QFrame,可以从主 window.

class Instance(QFrame):

    def __init__(self):
        super().__init__()
        self.username = "whatever"

        ...

        self.startButton = QPushButton('Start')
        self.startButton.clicked.connect(lambda: self.engineStart())

        self.exitButton = QPushButton('Exit')
        self.exitButton.clicked.connect(lambda: self.engineExit())

        ...

外观如何

用户应该能够随意创建和删除实例。

创建标签没问题。我有一个“+”按钮设置为 QTabWidgetcornerWidget。它连接到一个简单的方法来添加选项卡。

class App(QFrame):

    def __init__(self):

        ...

    def addNewTab(self):
        t = Instance()
        self.tabs.addTab(t, t.username)

问题是,如何使用 "inside" 实例 class 中的 "Exit" 按钮来删除从主 window 中管理的选项卡"outside"class?我需要一些方法来调用 removeTab()

要执行您想要的操作,您必须在主 window 中创建一个插槽,并将其连接到按钮的点击信号,如下所示:

class App(QFrame):

    def __init__(self):
        ...
    def addNewTab(self):
        t = Instance()
        self.tabs.addTab(t, t.username)
        t.exitButton.clicked.connect(self.slot)

    def slot(self):
        self.tabs.removeTab(your_index)