0

我无法填充此表,我不知道我做错了什么,我一直在阅读一些帖子,并且似乎一切都是正确的......但是,我的表中没有出现任何内容。

这是我的代码:

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)

任何帮助将不胜感激!!

4

2 回答 2

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并 for each listin it call AddRowToTable。PS不要忘记setColumnCount在everything之前。

于 2014-02-26T10:35:32.157 回答
0

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

PS:不需要像其他语言那样遍历索引;您可以使用for x in list迭代列表的元素(x将是列表的元素)。

于 2013-12-04T14:18:20.783 回答