Внесение данных в строки таблицы QTableWidget
День добрый, есть алгоритм который добавляет в QTableWidget
строку, создавая в нем данные
from PyQt5 import QtCore, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(758, 284)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.BT1 = QtWidgets.QPushButton(self.centralwidget)
self.BT1.setGeometry(QtCore.QRect(40, 30, 301, 71))
self.BT1.setObjectName("BT1")
self.BT2 = QtWidgets.QPushButton(self.centralwidget)
self.BT2.setGeometry(QtCore.QRect(40, 110, 301, 71))
self.BT2.setObjectName("pushButton_2")
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(350, 30, 361, 151))
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(3)
self.tableWidget.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(2, item)
MainWindow.setCentralWidget(self.centralwidget)
self.BT1.clicked.connect(self.BT_1_Clicked) # Связь с 1-ой кнопкой
self.BT2.clicked.connect(self.BT_2_Clicked) # Связь с 2-ой кнопкой
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.BT1.setText(_translate("MainWindow", "Past 1"))
self.BT2.setText(_translate("MainWindow", "Past 2"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "x"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "y"))
item = self.tableWidget.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "z"))
def BT_1_Clicked(self):
nr = self.tableWidget.rowCount()
self.tableWidget.insertRow(nr)
self.tableWidget.setItem(nr, 0, QtWidgets.QTableWidgetItem('x'))
self.tableWidget.setItem(nr, 1, QtWidgets.QTableWidgetItem('y'))
pass
def BT_2_Clicked(self):
nr = self.tableWidget.rowCount()
self.tableWidget.insertRow(nr)
self.tableWidget.setItem(nr, 2, QtWidgets.QTableWidgetItem('z'))
pass
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
В данном коде при нажатии на кнопку №1
появляется строка, в ней заполняется 1-ый
и 2-ой
столбец.
При нажатии на кнопку №2
появляется еще одна строка, и в ней заполняется 3
столбец.
Суть задачи:
Сделать так, чтобы при нажатии на кнопку №2
заполнялся 3-ий
столбец в строке, которая создалась от 1-ой
кнопкой.
Источник: Stack Overflow на русском