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