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())

        ...

它的样子

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

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

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 - 课堂外的标签管理的主要内容,如果未能解决你的问题,请参考以下文章

云课堂bug收集5月9日

云课堂bug收集5月9日

爱创课堂每日一题第四十七天- 清除浮动的几种方法?

我添加了标签,但标签外的视图变得无法访问(ios)

PyQt 4:使标签可滚动

在 Xcode 中自动调整标签行的大小有意外的结果