Как выбрать конкретную вкладку из многих, чтобы добавить информацию о PyQT? - PullRequest
0 голосов
/ 08 февраля 2019

Я разрабатываю графический интерфейс на основе PyQt4.

GUI - это в основном QTabWidget в окне.

QtabWidget имеет много вкладок, в каждой из которых есть таблица, идея состоит в том, чтобы выбрать конкретную вкладку и добавить информацию в ее таблицу.

Моя проблема в том, что когда я изменяю индекс моего вкладки и пытаюсь добавить информацию в эту конкретную таблицу, информация помещается в таблицу последней созданной вкладки.

Например, у меня 3 закладки,

Кто-нибудь может мне помочь?

Заранее спасибо, и вот мой код:

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4 import uic, QtCore, QtGui

class MyWindow(QtGui.QWidget):
    recive=QtCore.pyqtSignal(str)
    poner=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")
        self.indice=1

    @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))
        QtCore.QMetaObject.connectSlotsByName(self.tabWidget)
        self.add_table()
        self.tab.show()
        self.indice=self.indice+1

    @pyqtSlot()
    def add_table(self):
        self.tabla_mia = QtGui.QTableWidget(self.tab)
        self.tabla_mia.setGeometry(QtCore.QRect(0, 0, 391, 401))
        self.tabla_mia.setAcceptDrops(False)
        self.tabla_mia.setAutoFillBackground(False)
        self.tabla_mia.setObjectName("tabla_mia")
        self.tabla_mia.setColumnCount(2)
        self.tabla_mia.setRowCount(0)
        item = QtGui.QTableWidgetItem()
        self.tabla_mia.setHorizontalHeaderItem(0, item)
        item.setText(_translate("Form", "Platillo", None))
        item = QtGui.QTableWidgetItem()
        self.tabla_mia.setHorizontalHeaderItem(1, item)
        item.setText(_translate("Form", "Cantidad", None))
        QtCore.QMetaObject.connectSlotsByName(self.tabWidget)
        self.tabla_mia.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.emit('1')
    window.recive.emit('2')
    window.tabWidget.setCurrentIndex(1)
    window.tabla_mia.setRowCount((window.tabla_mia.rowCount())+1)
    window.tabla_mia.setItem(0,0,QTableWidgetItem("Holo"))
    sys.exit(app.exec_())
...