Я разрабатываю графический интерфейс на основе PyQt4.GUI - это в основном Qtabwidget в окне.Идея состоит в том, что каждый раз, когда окно получает сигнал, это добавляет новую вкладку методом add_tab.Когда сигнал принимается в первый раз, он работает отлично, создается tab_0, но при следующей попытке он дважды создает tab_1, а при следующей попытке создает три вкладки tab_2 и так далее.Кто-нибудь может объяснить мне, что происходит и как это исправить?Я думаю, что это связано с введите описание изображения здесь изменяемая тема, но я не уверен.
Заранее спасибо !!!это мой код:
class MyWindow(QtGui.QWidget):
recive=QtCore.pyqtSignal(str)
def __init__(self,parent=None):
super(MyWindow, self).__init__(parent)
QtGui.QWidget.__init__(self)
self.setWindowTitle(_translate("Form", "Form", None))
self.setObjectName(_fromUtf8("Form"))
self.resize(695, 577)
self.tabWidget = QtGui.QTabWidget(self)
self.tabWidget.setGeometry(QtCore.QRect(0, 0, 691, 571))
self.tabWidget.setAcceptDrops(False)
self.tabWidget.setObjectName("tabWidget")
@pyqtSlot(str)
def add_tab(self,numero):
self.tab = QtGui.QWidget(self.tabWidget)
self.tab.setObjectName("tab")
self.tabWidget.addTab(self.tab, "tab")
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab),
_translate("Form", "mesa_"+numero, None))
self.tabWidget.setCurrentIndex(int(numero))
QtCore.QMetaObject.connectSlotsByName(self.tabWidget)
self.tab.show()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window=MyWindow()
window.show()
window.recive.connect(window.add_tab)
window.recive.emit('0')
window.recive.connect(window.add_tab)
window.recive.emit('1')
window.recive.connect(window.add_tab)
window.recive.emit('2')
sys.exit(app.exec_())
введите описание изображения здесь