QTableWidgetItem让itmes方法无效

时间:2013-12-04 14:08:07

标签: python qtablewidget qtablewidgetitem

我无法填充这张桌子,我不知道我做错了什么,我一直在阅读一些帖子,看起来一切都是正确的......但是,我的桌子上什么都没有出现。

这是我的代码:

totalProcess列表就像totalProcess = [[list1],[list2],[list3] ...]

def updateTable(self,totalProcess):

   for x in xrange(10):
       for i in xrange(len(totalProcess[x])):

           item = QtGui.QTableWidgetItem(totalProcess[x][i])
           self.ui.tableWidgetResults.setItem(x,i,item)

任何帮助将不胜感激!!

2 个答案:

答案 0 :(得分:0)

是否设置了QTableWidget的rowCountcolumnCount属性? QTableWidget仅显示其中的项目。否则代码是正确的。

PS :没有必要像其他语言那样循环索引;您可以使用for x in list遍历列表元素(x将是列表的元素。)

答案 1 :(得分:0)

  

我的意思是,让我们说我们知道数字os列,10,来自   从头到尾,但我们不知道行数,就像在一个   采集系统,我们只是继续添加新的行,直到   收购完成。会不可能?

是的,这是可能的,而且非常简单。例如,你可以这样做:

 def AddRowToTable(self, list):                      # list is one of those from your totalProcess = [ [list1],[list2],[list3]...]
    row = self.ui.tableWidgetResults.rowCount()      # get current number of rows
    self.ui.tableWidgetResults.insertRow(row)        # insert new row
    for col in range(0, len(list)):                  # add items into row
        item = QtGui.QTableWidgetItem(QtCore.QString(unicode(list[col])))
        self.ui.tableWidgetResults.setItem(row, col, item)
  

现在看起来它正在工作,但也许我正在获得一些空单元格   之间

这就是为什么我已将list[col]添加到此QtCore.QString(unicode(list[col]))中 - 以确保它是QtGui.QTableWidgetItem输入参数的有效值类型。

现在,您可以简单地遍历totalProcess,并为其中的每个list调用AddRowToTable。 PS在每个人之前不要忘记setColumnCount