设置单元格属性将新GridCellAttr添加到GridCellAttrProvider名单。 随着列表的增长,查找单元格的特定属性(通过遍历列表和比较坐标)变得越来越慢。

您可以尝试通过PyGridTableBase.SetAttr和GetAttr(例如使用字典)实现自己的加快步伐:

编辑:更新后的代码,以允许重写属性和仿效的默认实现属性的所有权。

class MyTable(wx.grid.PyGridTableBase):

atts = {}

def Hash(self,row,col):

#FIXME: assumes a constant number of rows and rows > cols

return col + row * self.GetNumberRows()

def SetAttr(self,attr,row,col):

HASH = self.Hash(row, col)

if HASH in self.atts:

# decrement usage count of existing attr

self.atts[HASH].DecRef()

#assign new attribute

self.atts[HASH] = attr

def GetAttr(self,row,col,kind):

HASH = self.Hash(row, col)

if HASH in self.atts:

attr = self.atts[HASH]

attr.IncRef() # increment reference count

return attr

return None

要允许设置整个行和列,你还必须实现:

def SetRowAttr(self,attr,row):

for col in range(self.GetNumberCols()):

attr.IncRef() # increment reference count for SetAttr

self.SetAttr(attr,row,col)

attr.DecRef() # attr passed to SetRowAttr no longer needed

def SetColAttr(self,attr,col):

for row in range(self.GetNumberRows()):

attr.IncRef()

self.SetAttr(attr,row,col)

attr.DecRef()

注:路过时GridCellAttr到Set*Attr(),默认的实现将采取属性的所有权。 要重新使用相同的属性(例如存储在类变量中),您必须先将其使用Clone()或将其使用计数递增(IncRef()) ,然后再将其传递给Set*Attr()方法(克隆可能会增加内存消耗)。

上述示例没有正确删除属性:SetAttr()可能会检查无attr并在指定的坐标处递减ref计数,然后从dict中删除条目。 SetCol/RowAttr()可以通过添加为ROW和COL,类似于SetAttr() http://stardict.sourceforge.net/Dictionaries.php下载进行优化。 GetAttr()然后可以检查行和冒号中的现有条目,并使用单元格dict中的属性(这是默认实现使用的原则)合并/覆盖该属性。要正确清理字典,请在.clear()之前的每个条目上拨打DecRef。

或者,您可以从wx.grid.GridCellAttrProvider派生并附加PyGridTableBase.SetAttrProvider()。但是,这会阻止直接访问表格。

wxpython下载缓慢_我可以在wxPython的wx.grid.Grid中加速优化GridCellAttr的使用吗?相关推荐

  1. 视频下载工具 (python爬虫和wxpython实现)

    本工具是用python语言实现功能,wxPython实现界面,pyinstaller打包成的电脑软件. 软件已经全部上传 我的gitee库 ,可自行下载使用. 目录 一.图片展示 1.界面展示 2.实 ...

  2. WXpython下载很慢安装包教程,直接安装不上,只好把所有包下载下来

    首先确定好自己的python支持哪些版本的whl文件 链接:https://pan.baidu.com/s/1jlLKQWH3D-YTUcohi6F0dA?pwd=abc1  提取码:abc1  内含 ...

  3. python模块下载过程_常用的python模块及安装方法

    bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah cherrypy:一个WEB framework ctypes:用来调用动态链接库 DBUti ...

  4. 爬虫python下载视频_用python做爬虫下载视频

    用python有一段时间了,对python是十二分喜爱,在我看来python是个好工具,可以轻松简洁的帮我完成一些我想要完成的工作.下面和大家分享一下我用python爬取某网站视频的案例.用pytho ...

  5. 腾讯视频下载位置_腾讯视频怎么下视频到手机

    很多人都使用腾讯视频,播放器家园网小编给大家分享一下腾讯视频下载位置_腾讯视频怎么下视频到手机相关内容.作为国内首家,全力打造正版视频平台的腾讯视频,将从流畅的观映体验.高清的视觉效果.贴心的分享感受 ...

  6. 腾讯视频下载官方_腾讯视频评论在哪

    本文给大家整理了腾讯视频下载官方_腾讯视频评论在哪方面的内容.腾讯视频影音是一款界面轻松友好,功能全面完善,方便好用,绿色安全,完全免费的.专注视频播放的客户端软件,您可运行腾讯视频影音,在线享受腾讯 ...

  7. 腾讯视频下载格式_怎么下载腾讯视频

    不管这个腾讯视频好用与否,都有一大批用户,本文播放器家园网小编分享腾讯视频下载格式_怎么下载腾讯视频.腾讯视频时刻为您推荐最新最火的视频,精彩不断随时观看.支持各种画质的下载,没网也能享受高视觉的享受 ...

  8. 腾讯视频下载电脑_腾讯视频如何设置允许腾讯视频驻留功能

    本文给大家整理了腾讯视频下载电脑_腾讯视频如何设置允许腾讯视频驻留功能方面的内容.腾讯视频不断实践"三网合一"的使命,现已覆盖互联网.电视.移动三大终端,兼具影视.综艺.资讯三大内 ...

  9. 腾讯视频真实下载地址_腾讯视频如何多倍速播放视频

    腾讯视频官网版是一款专注视频播放的客户端软件,您可运行腾讯视频,在线享受奇艺网站内全部免费高清正版视频.腾讯视频视频播放器内容丰富,影视更新快,包含腾讯视频所有的视频内容,在线享受腾讯视频站内全部免费 ...

最新文章

  1. 谈Objective-C Block的实现
  2. linux安装显卡驱动的run文件,Linux系统下安装NVIDIA显卡驱动(run格式文件)
  3. 使用 soapUI 测试 REST 服务
  4. ORACLE 表空间SQL
  5. win10查看pcie设备_壹拓网科技解密WIN10系统使用向日葵开机棒远程开机需要设置几个地方...
  6. H264中的SPS、PPS提取与作用
  7. SQL Server查询中特殊字符的处理方法
  8. Object.definePropety
  9. Given two binary trees, write a function to check if they areequal or not.
  10. JAVA8的双重循环怎么优化_Java8处理List的双层循环问题
  11. HDOJ 1720 A+B Coming
  12. 面向能源效率的云计算
  13. 克里希纳驼奶粉食疗可养生?
  14. web页面设计实训——03.12
  15. Aurora核使用中tx_dst_rdy信号拉低问题(续)
  16. 准确测试身高的软件,情侣身高对比软件-身高模拟对比软件预约 v1.0最新版_5577安卓网...
  17. Shopee开店不懂英语怎么办?
  18. 黑马程序员--Objective-C之--OC中的内存管理
  19. 插入top.php,CmsTop手动区块(就是phpcms的碎片)的内容支持三种添加方式
  20. java currenthread_java-Intellij IDEA评估表达式窗口和Thread.curren...

热门文章

  1. python 的csr_python的高级数组之稀疏矩阵
  2. java 实现按规则自增功能_java运算符详解 - osc_74vaali6的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. java list 取几个字段组装成map_24道Java各类常见问题整理
  4. 交换机的硬件故障问题总结
  5. 【渝粤教育】电大中专电子商务网站建设与维护 (11)作业 题库
  6. 【渝粤题库】陕西师范大学210011幼儿园语言教育作业(高起专)
  7. 【渝粤题库】广东开放大学 劳动关系理论与实务 形成性考核
  8. html 并集选择器,CSS并集选择器
  9. 服务器安装mysql要密码_在阿里云服务器上安装mysql及重置密码
  10. MATLAB库函数unwrap(相位解卷绕)的C语言实现