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

小记以前一个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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值