Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add a row in a tableWidget PyQT?

I am currently working on a widget that was designed in Qt Designer. I am having trouble with the syntax / overall concept of trying to add a row to a Qtable in PyQT. There is no method, which I have yet found to dynamically add rows. Any suggestions would be helpful.

Regards

like image 681
sudobangbang Avatar asked Jun 04 '14 18:06

sudobangbang


2 Answers

You can add empty row and later populate all columns. This is how to insert row under all other rows:

rowPosition = self.table.rowCount()
table.insertRow(rowPosition)

after that you have empty row that you can populate like this for example( if you have 3 columns):

table.setItem(rowPosition , 0, QtGui.QTableWidgetItem("text1"))
table.setItem(rowPosition , 1, QtGui.QTableWidgetItem("text2"))
table.setItem(rowPosition , 2, QtGui.QTableWidgetItem("text3"))

You can also insert row at some other position (not necessary at the end of table)

like image 142
Aleksandar Avatar answered Sep 27 '22 18:09

Aleksandar


It is somewhat peculiar, I've found. To insert a row, you have to follow something similar to this:

tableWidget = QTableWidget()
currentRowCount = tableWidget.rowCount() #necessary even when there are no rows in the table
tableWidget.insertRow(currentRowCount, 0, QTableWidgetItem("Some text"))

To clarify the last line of code, the first parameter of insertRow() is the current row, the second one is current column (remember it's always 0-based), and the third must almost always be of type QTableWidgetItem).

like image 45
Bo Milanovich Avatar answered Sep 27 '22 17:09

Bo Milanovich