我无法填充这张桌子,我不知道我做错了什么,我一直在阅读一些帖子,看起来一切都是正确的......但是,我的桌子上什么都没有出现。
这是我的代码:
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)
任何帮助将不胜感激!!
答案 0 :(得分:0)
是否设置了QTableWidget的rowCount和columnCount属性? 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
。