0

我正在尝试使用从数据库读取的值更新 wxgrid。

当我在循环上方直接使用 SetCellValue 时,它​​会正确分配值,但在循环中它似乎只更新网格的“本地”副本,并且当再次退出循环时,只包含它之前的值 - 我我确信这是一个非常愚蠢的错误,但它让我发疯,所以非常感谢任何帮助。

    #now clear grid and re-populate with cafe data
    print('1,6 is ',self.myGrid.GetCellValue(1,6))   
    self.myGrid.SetCellValue(1,7,'TEST')     
    #self.myGrid.ClearGrid()
    for index, value in enumerate(curItems):
        x = 0
        print(index)
        print(len(value))
        while x < len(value):
            if debug : print(x,index,value[x])
            self.myGrid.SetCellValue(x,index,str(value[x]))
            print('grid values :',index,x,self.myGrid.GetCellValue(x,index))
            x += 1
    print('1,7 is ',self.myGrid.GetCellValue(1,7))
    self.myGrid.ForceRefresh

单元格 (1,6) 在定义函数中使用测试值定义,然后在事件上调用它(它会更新其他 setLabels 等),并在此处给出正确的值:

1,6 is  I'm in red!

在循环中,值设置正确:

grid values : 1 0 20220114002
grid values : 1 1 2022-01-14
grid values : 1 2 Electrical
grid values : 1 3 Toaster
grid values : 1 4 burns
grid values : 1 5 0
grid values : 1 6 Not Fixed
grid values : 1 7 Steve
grid values : 1 8 too damaged
grid values : 1 9 1

但是一旦您退出循环:

1,7 is  TEST
4

1 回答 1

0

也许'index'和'x'在错误的地方

self.myGrid.SetCellValue(index,x,str(value[x]))
print('grid values :',index,x,self.myGrid.GetCellValue(index,x))
于 2022-02-13T13:19:57.657 回答