Reading edited cells from three QtableWidgets

Viewed 31

In each of the three tables the 'edit' column is the only one that can be edited by the user. My problem is that I can't know in which table the edit was done as all three are "generated" by the same call

import sys from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem

class NewBook(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.setupUi(self)

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setGeometry(QtCore.QRect(100, 60, 700, 250))
        MainWindow.setWindowTitle("Aggiornamento Titoli")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        title = 'aaa'
        x = 20
        y = 30
        x1 = 210
        y1 = 152
        aaatot = self.build_table(title, x, y, x1, y1)
        x = 250
        y = 30
        x1 = 210
        y1 = 152
        title = 'bbb'
        bbbtot = self.build_table(title, x, y, x1, y1)
        x = 480
        y = 30
        x1 = 210
        y1 = 152
        title = 'ccc'
        ccctot = self.build_table(title, x, y, x1, y1)
        self.upd_Button = QtWidgets.QPushButton(self.centralwidget)
        self.upd_Button.setGeometry(QtCore.QRect(90, 200, 81, 20))
        self.upd_Button.setObjectName("upd_Button")

        self.upd_Button.setText("upd")
        self.upd_Button.clicked.connect(self.on_click)
        MainWindow.setCentralWidget(self.centralwidget)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
        MainWindow.show()

    def build_table(self, title, x, y, x1, y1):

        self.table = QtWidgets.QTableWidget(self.centralwidget)
        self.table.setGeometry(QtCore.QRect(x, y, x1, y1))
        self.table.setColumnCount(5)
        self.table.setRowCount(0)
        self.table.verticalHeader().hide()
        self.table.horizontalHeader().setStretchLastSection(False)
        self.table.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents)
        self.table.horizontalHeader().hide()
        self.table.horizontalHeader().setDefaultSectionSize(10)
        self.table.verticalHeader().setDefaultSectionSize(25)


        t_row = 0
        i = 0
        ttl_array = ['a','b','c','edit','e']
        self.table.insertRow(t_row)
        while i <= 4:
            item = ttl_array[i]
            cell = QTableWidgetItem(item)
            self.table.setItem(t_row, i, cell)
            i += 1
        tot = 0
        t_row += 1
        while t_row <= 5:
            self.table.insertRow(t_row)
            cell = QTableWidgetItem('phone')
            self.table.setItem(t_row, 0, cell)

            cell = QTableWidgetItem('fax')
            self.table.setItem(t_row, 1, cell)

            cell = QTableWidgetItem('available')
            self.table.setItem(t_row, 2, cell)

            cell = QTableWidgetItem(' ')
            self.table.setItem(t_row, 3, cell)

            cell = QTableWidgetItem('busy')
            self.table.setItem(t_row, 4, cell)
            t_row += 1

        return tot

    def on_click(self):
        pass

def main():
    app = QApplication(sys.argv)
    window = NewBook()
    window.show()
    sys.exit(app.exec_())


if __name__ == "__main__":
    main()
0 Answers
Related