QTableWidgetItem正在获取itmes方法无效

2024-10-01 07:47:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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

这是我的代码:

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)

任何帮助都将不胜感激!!在


Tags: 代码inself内容列表fordefitem
2条回答

QTableWidget的rowCountcolumnCount属性是否已设置?QTableWidget将只显示其中的项。否则代码是正确的。在

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

I mean, let's say that we know the number os columns, 10, from the beginning to the end, but we dont know the number of rows, like in an acquisition system, we just keep on adding new rows until the acquisition is finished. Would it be possible?

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

 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)

now seems like it is working but maybe im getting some empty cells in between

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

现在您可以简单地遍历totalProcess,并对其中的每个list调用AddRowToTable。别忘了在做任何事情之前setColumnCount。在

相关问题 更多 >