Python QTableWidgetItem获取itmes方法不工作

Python QTableWidgetItem获取itmes方法不工作,python,qtablewidget,qtablewidgetitem,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 = QtG

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

这是我的密码:

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)
任何帮助都将不胜感激

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

PS:没有必要像在其他一些语言中那样循环索引;您可以对列表中的x使用
来迭代列表的元素(
x
将是列表的元素)

我的意思是,假设我们从 从开始到结束,但我们不知道行数,就像在一个 采集系统中,我们只是不断添加新行,直到 收购完成。可能吗

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

 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
,并为其中的每个
列表
调用
addrowtable
。PS在做任何事情之前,不要忘记
setColumnCount

谢谢你的回答,行和列属性已经设置好了,但是在循环的每次迭代之后,表并没有按照需要用nex行“更新”…@user2919052我使用你的代码将项目添加到QTableWidget中,它可以工作。你能提供一个例子来说明你的问题吗?它现在是固定的,对不起,你是对的,列属性不正确,现在似乎它正在工作,但也许我得到一些空单元格之间,我将不得不看看它。我还有另一个疑问……是否有可能使tablr在每次迭代中增长???,我的意思是,如果列num是固定的,但行num在开始时不能固定,该怎么办?是否可以“更新”它并使表增长?也许使用.repaint()方法?我不认为有任何简单的方法可以让每行有不同数量的列,或者让每列有不同数量的行。但是,可以将rowCount设置为比所使用的最大行位置更高的值;没有任何项目的位置都是空的。不,不,也许我没有很好地解释,我的意思是,我们从开始到结束都知道os列的数量,10,但是我们不知道行的数量,就像在采集系统中一样,我们只是不断添加新行,直到采集完成。可能吗?您可能希望使用“for col,value in enumerate(list):”这样,您已经将值作为list[col]和col作为索引,因此不需要调用list[col]。当然,为什么不。。。虽然我认为这不会提高性能