PyQt - 课堂外的标签管理
Posted
技术标签:
【中文标题】PyQt - 课堂外的标签管理【英文标题】:PyQt - Tab Management from Outside Class 【发布时间】:2017-07-30 00:45:09 【问题描述】:我正在使用 PyQt 设计一个应用程序来管理多个 Selenium 实例。每个实例都有一个带有唯一信息和控件的 QFrame,并且可以在主窗口中通过选项卡浏览。
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)
问题是,如何使用“内部”实例类中的“退出”按钮来删除从主窗口的“外部”类管理的选项卡?我需要打电话给removeTab()
【问题讨论】:
【参考方案1】:要做你想做的事,你必须在主窗口中创建一个槽,并将其连接到按钮的 clicked 信号,如下所示:
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 - 课堂外的标签管理的主要内容,如果未能解决你的问题,请参考以下文章