如何防止关闭选项卡QTabWidget? PyQt4中

时间:2016-03-21 00:28:49

标签: pyqt designer

使用此代码:

QtCore.QObject.connect(self.tabWidget, QtCore.SIGNAL("tabCloseRequested(int)"),
                       self.tabWidget.removeTab)

我可以关闭任何标签QTabWidget,这些标签的名称是:

work_1

work_2

work_3

但我希望标签 work_1 永不关闭。

使用索引不起作用有两个原因:

  • 此代码可以动态移动标签:

    self.tabWidget.setMovable (True)
    

这使得指数不断变化。

  • 用户可以添加新标签。

1 个答案:

答案 0 :(得分:0)

标签可以通过其小部件进行标识,小部件可以通过其objectName(或其他一些独特属性)进行标识:

        self.tabWidget.tabCloseRequested.connect(sef.removeTab)
        ...

    def removeTab(self, index):
        widget = self.tabWidget.widget(index)
        if widget is not None and widget.objectName() != 'work_1':
            self.tabWidget.removeTab(index)

或者更简单:

        if widget is not None and widget is not self.work_1:
            self.tabWidget.removeTab(index)