Pyqt关闭未选中的选项卡

时间:2014-09-03 02:51:28

标签: python tabs pyqt qtabwidget

因此,为了关闭标签,我一直在使用QTabWidget.currentWidget()来查找要关闭的选定标签,但现在当我单击其他标签上的关闭图标时,由于我的设置方式,它会关闭当前标签这个

那么如何找到关闭按钮附带的标签,以便关闭正确的标签?

干杯

1 个答案:

答案 0 :(得分:4)

请处理void tabCloseRequested (int)以获取小部件的当前索引已被请求关闭。接下来,通过QWidget QTabWidget.widget (self, int index)找到包含索引的小部件并将其删除。或者,使用QTabWidget.removeTab (self, int index)(但页面小部件本身不会被删除)。

import sys
from PyQt4 import QtGui

class QCustomTabWidget (QtGui.QTabWidget):
    def __init__ (self, parent = None):
        super(QCustomTabWidget, self).__init__(parent)
        self.setTabsClosable(True)
        self.tabCloseRequested.connect(self.closeTab)
        for i in range(1, 10):
            self.addTab(QtGui.QWidget(), 'Tab %d' % i)

    def closeTab (self, currentIndex):
        currentQWidget = self.widget(currentIndex)
        currentQWidget.deleteLater()
        self.removeTab(currentIndex)

myQApplication = QtGui.QApplication([])
myQCustomTabWidget = QCustomTabWidget()
myQCustomTabWidget.show()
sys.exit(myQApplication.exec_())