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())
...
外观如何
用户应该能够随意创建和删除实例。
创建标签没问题。我有一个“+”按钮设置为 QTabWidget
的 cornerWidget
。它连接到一个简单的方法来添加选项卡。
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)
我正在使用 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())
...
外观如何
用户应该能够随意创建和删除实例。
创建标签没问题。我有一个“+”按钮设置为 QTabWidget
的 cornerWidget
。它连接到一个简单的方法来添加选项卡。
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)