Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #53863

Re: Logical error in filling QTableWidget and filling all of nodes

Date 2013-09-09 12:24 +0100
From MRAB <python@mrabarnett.plus.com>
Subject Re: Logical error in filling QTableWidget and filling all of nodes
References <1378703716.6005.47.camel@debian>
Newsgroups comp.lang.python
Message-ID <mailman.172.1378725850.5461.python-list@python.org> (permalink)

Show all headers | View raw


On 09/09/2013 06:15, Mohsen Pahlevanzadeh wrote:
> Dear All,
>
> I have the following code (PyQt):
>
> /////////////////
> searchFrameObject.tableWidget.setRowCount(rowCounter)
> searchFrameObject.tableWidget.setColumnCount(5)
>
> for row in range(rowCounter):
>      for column in range(5):
>          for result in query:
>
>              item = QtGui.QTableWidgetItem(_fromUtf8(result.name))
>              item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEnabled)
>              searchFrameObject.tableWidget.setItem(row,column,item)
>
>              #item = QtGui.QTableWidgetItem(String(result.bought_price))
>              #item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEnabled)
>              #searchFrameObject.tableWidget.setItem(row,column+1,item)
>
>              #item = QtGui.QTableWidgetItem(result.bought_date)
>              #item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEnabled)
>              #searchFrameObject.tableWidget.setItem(row,column+2,item)
>
>              item = QtGui.QTableWidgetItem(result.stock)
>              item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEnabled)
>              searchFrameObject.tableWidget.setItem(row,column+3,item)
>
>              item = QtGui.QTableWidgetItem(result.minimum_bound)
>              item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEnabled)
>              searchFrameObject.tableWidget.setItem(row,column+4,item)
> ////////////////
>
> When i search in DB, i print result.name or print result.stock ,
> everything is OK. But when i import them into QtableWidget i see just
> node result.name addeed to widgets. (all of nodes filled from
> result.name)
>
> My Question is , How i fill rows and columns with my fields?
>
I don't understand why you're iterating across the columns:

     for column in range(5):

and also setting multiple columns on each iteration:

     searchFrameObject.tableWidget.setItem(row,column,item)
     ...
     searchFrameObject.tableWidget.setItem(row,column+3,item)
     ...
     searchFrameObject.tableWidget.setItem(row,column+4,item)

That means that: when 'column' is 0 you're setting column 0 to
result.name, column 3 to result.stock, and column 4 to
result.minimum_bound; when 'column' is 1 you're setting column 1 to
result.name, column 4 to result.stock, and column 5 to
result.minimum_bound; etc.

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: Logical error in filling QTableWidget and filling all of nodes MRAB <python@mrabarnett.plus.com> - 2013-09-09 12:24 +0100

csiph-web