On Wednesday, April 24, 2013 11:51:04 AM UTC-7, Vincent Vande Vyvre wrote: Thanks. I think I should be able to figure out from here. I appreciate all of the help!
> Le 24/04/2013 19:12, Sara Lochtie a écrit : > > > On Tuesday, April 23, 2013 11:22:29 PM UTC-7, Sara Lochtie wrote: > > >> I have written a GUI that gets data sent to it in real time and this data > >> is displayed in a table. Every time data is sent in it is displayed in the > >> table in a new row. My problem is that I would like to have the data just > >> replace the old in the first row. > > >> > > >> > > >> > > >> The table has 6 columns (A, B, C, D, E, F) I want the new data to continue > >> replacing the old data in the same row unless the data that goes under > >> column A changes, at which point a new row would be added. > > >> > > >> > > >> > > >> Does anyone have tips on how to approach this? I can post a portion of my > >> code to get a better idea of what I have done. > > > So that is where I am stuck. I don't how to compare them and I am trying to > > avoiding saving the data to a file. > > > > > > This is the code that I have: > > > > > > > > > > > > > > > > > > if msg.arg2() != ERROR: > > > entry = (A, B, C, D, E, F) > > > self.data.append(entry) > > > > > > data = self.data > > > > > > # Display how many runs occurred > > > self.statusBar().showMessage('Data read. %s Run(s) Occurred.' % > > self.runCount) > > > > > > # Populates table by adding only new entries to the end of the > > table > > > lastRow = self.table.rowCount() > > > self.table.setRowCount(len(data)) > > > for entryPos in range(lastRow, len(data)): > > > for fieldPos in range(6): > > > item = > > QtGui.QTableWidgetItem(str(data[entryPos][fieldPos])) > > > self.table.setItem(entryPos, fieldPos, item) > > > self.table.resizeColumnsToContents() > > > self.table.horizontalHeader().setStretchLastSection(True) > > > self.currentRunLabel.setText('Current Run: ' + str(self.runCount)) > > > self.currentLineLabel.setText('Number of lines: ' + > > str(len(self.data))) > > > print('End of %s. run: %s. entries found' % (self.runCount, > > len(self.data))) > > As sayed by Chris "Kwpolska", you can compare the new data with the data > > of the first row. > > > > Something like that: > > > > # Get the content of row 0, column A > > first = str(self.table.item(0, 0).text()) > > > > for entryPos in range(lastRow, len(data)): > > if str(data[entryPos][0]) == first: > > self.update_first_row(data[entryPos]) > > > > else: > > self.add_new_row(data[entryPos]) > > -- > > Vincent V.V. > > Oqapy <https://launchpad.net/oqapy> . Qarte > > <https://launchpad.net/qarte> . PaQager <https://launchpad.net/paqager> -- http://mail.python.org/mailman/listinfo/python-list