wxPython中如何让继承使用了PyGridTableBase的grid切换数据

来源:互联网 发布:有什么好听的网络歌曲 编辑:程序博客网 时间:2024/05/21 06:52

小记以前一个QQ农场偷菜软件

我的展示农作物的表格有点复杂,

数据类继承Grid.PyGridTableBase,
显示类继承Grid.PyGridCellRenderer

问题是当我在运行时要切换表格中的数据时,表格并不随之动态更新。这个问题困扰了我很久,曾经逼得我建了3个表格,切换数据时隐藏另外两个。可这个解决方案实在不漂亮。一次次Google加一次偶然的灵机一动,I hack it !!!


此过程需要以下三步的配合,我写成一个方法:

def SwitchData(self, rows)    #1.删除原来所有的数据    self.DeleteRows(0, self.GetNumberRows())    _msg = Grid.GridTableMessage(self.GetTable(),                                Grid.GRIDTABLE_NOTIFY_ROWS_DELETED,                                0,                          #index of the first row                                self.GetNumberRows()        #the number of rows to be removed                                )    self.ProcessTableMessage(_msg)    #2.添加新的数据    self.GetTable().AppendRows(rows)   #数据类中的一个增加行的函数,自定义    _msg = Grid.GridTableMessage(self.GetTable(),                      Grid.GRIDTABLE_NOTIFY_ROWS_APPENDED, # what we did to it                     self.GetTable().GetNumberRows()      # how many                     )    self.ProcessTableMessage(_msg)    #3.强制更新表格视图    self.AutoSizeColumns()    self.AutoSizeRows()


0 0
原创粉丝点击