Qt Table Widget不显示值

时间:2014-01-27 17:35:48

标签: python qt4

我有一个使用Qt4用python编写的GUI应用程序。按下按钮时,应用程序从文件中读取数据并填充TableWidget。代码是这样的:

def fillList(self):
  if my_table.dict1:
    i = 0
    values = sorted(my_table.dict1.keys())
    self.tableWidget.setRowCount(len(values))
    for value in values:
        self.fillRow(value, i)
        i += 1
  return

def fillRow(self, value, i):
  x = my_table.dict1[value]
  y = my_table.dict2[value]
  z = 0
  if y != 0:
    z = int(x / y)
  for a, b in zip(list(range(4)), (value, x, y, z)):
    item = QtGui.QTableWidgetItem()
    item.setData(QtCore.Qt.DisplayRole, b)
    self.tableWidget.setItem(i, a, item)
  return

有效。 TableWidget已启用排序,但是当您对列进行排序并按下按钮再次读取文件并填充表格时,一切都变得一团糟。大多数细胞随机空白。我会很感激,我该怎么办呢。

1 个答案:

答案 0 :(得分:0)

我通过在填充表格之前禁用排序并在之后启用它来解决问题。 所以现在看第一个函数:

def fillList(self):
  if my_table.dict1:
  i = 0
  values = sorted(my_table.dict1.keys())
  self.tableWidget.setSortingEnabled(False)
  self.tableWidget.setRowCount(len(values))
  for value in values:
    self.fillRow(value, i)
    i += 1
  self.tableWidget.setSortingEnabled(True)
  return