2014-09-03 2 views
0

Итак, чтобы закрыть вкладки, я использовал QTabWidget.currentWidget(), чтобы найти выбранную вкладку, но теперь, когда я нажимаю значок закрытия на другой вкладке, она закрывает текущую вкладку из-за как я это установилPyqt закрыть невыбранную вкладку

Как я могу найти вкладку, прикрепленную к кнопке закрытия, чтобы я мог закрыть правильную вкладку?

Приветствия

ответ

3

Пожалуйста, ручка с 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_()) 
+1

Спасибо, например, это помогло мне выявить некоторые ошибки, которые я сделал тоже, теперь он работает, спасибо большое – SketchyManDan

Смежные вопросы