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()