[PyKDE] QTable Behaviour

Andreas Pauley andreasp+pykde at qbcon.com
Wed Mar 16 13:42:25 GMT 2005


Hi all,

I've got a QTable with a few columns that represent my point-of-sale 
transactions (Item Code, Description etc.), and I'm struggling a bit to 
figure out how to get my QTable to behave itself.

The first column (Item Code) is editable, and when a user types in an item 
code (and press enter) the following should happen:
- The rest of the columns should be updated with data from the system
- A new row should be inserted at the end of my table
- My cursor focus should be put on the Item Code of the new row, ready to 
repeat the whole process

I've managed to get this process to work the first time, but as soon as I 
press enter the second time, I get some weird behaviour.

Here's what I did so far:
I connected the valueChanged() signal of the table to a slot I called 
processItem().
(Please feel free to suggest better naming conventions)

My processItem() looks like this:
     def processItem(self):
         print 'begin processItem'
         currentRow = self.tblItems.currentRow()
         numRows = self.tblItems.numRows()
         self.tblItems.setText(currentRow, 1,  str(numRows)+' '+time.ctime(time.time()))
         self.tblItems.insertRows(currentRow+1)
         self.tblItems.editCell(currentRow+1, 0)
         print 'end processItem'


Any advice?

To see this code in action you can do a subversion checkout:
svn co svn://svn.qbcon.com/repos/python/qualitypos/trunk qualitypos

Then just run main.py, log in as the default user and press F2 to start a 
cashier session.

I can also make a tarball/zipfile available for download, if that will 
make it easier for anyone.

Regards,
Andreas




More information about the PyQt mailing list