wxpython下载缓慢_我可以在wxPython的wx.grid.Grid中加速优化GridCellAttr的使用吗?
设置单元格属性将新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的使用吗?相关推荐
- 视频下载工具 (python爬虫和wxpython实现)
本工具是用python语言实现功能,wxPython实现界面,pyinstaller打包成的电脑软件. 软件已经全部上传 我的gitee库 ,可自行下载使用. 目录 一.图片展示 1.界面展示 2.实 ...
- WXpython下载很慢安装包教程,直接安装不上,只好把所有包下载下来
首先确定好自己的python支持哪些版本的whl文件 链接:https://pan.baidu.com/s/1jlLKQWH3D-YTUcohi6F0dA?pwd=abc1 提取码:abc1 内含 ...
- python模块下载过程_常用的python模块及安装方法
bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah cherrypy:一个WEB framework ctypes:用来调用动态链接库 DBUti ...
- 爬虫python下载视频_用python做爬虫下载视频
用python有一段时间了,对python是十二分喜爱,在我看来python是个好工具,可以轻松简洁的帮我完成一些我想要完成的工作.下面和大家分享一下我用python爬取某网站视频的案例.用pytho ...
- 腾讯视频下载位置_腾讯视频怎么下视频到手机
很多人都使用腾讯视频,播放器家园网小编给大家分享一下腾讯视频下载位置_腾讯视频怎么下视频到手机相关内容.作为国内首家,全力打造正版视频平台的腾讯视频,将从流畅的观映体验.高清的视觉效果.贴心的分享感受 ...
- 腾讯视频下载官方_腾讯视频评论在哪
本文给大家整理了腾讯视频下载官方_腾讯视频评论在哪方面的内容.腾讯视频影音是一款界面轻松友好,功能全面完善,方便好用,绿色安全,完全免费的.专注视频播放的客户端软件,您可运行腾讯视频影音,在线享受腾讯 ...
- 腾讯视频下载格式_怎么下载腾讯视频
不管这个腾讯视频好用与否,都有一大批用户,本文播放器家园网小编分享腾讯视频下载格式_怎么下载腾讯视频.腾讯视频时刻为您推荐最新最火的视频,精彩不断随时观看.支持各种画质的下载,没网也能享受高视觉的享受 ...
- 腾讯视频下载电脑_腾讯视频如何设置允许腾讯视频驻留功能
本文给大家整理了腾讯视频下载电脑_腾讯视频如何设置允许腾讯视频驻留功能方面的内容.腾讯视频不断实践"三网合一"的使命,现已覆盖互联网.电视.移动三大终端,兼具影视.综艺.资讯三大内 ...
- 腾讯视频真实下载地址_腾讯视频如何多倍速播放视频
腾讯视频官网版是一款专注视频播放的客户端软件,您可运行腾讯视频,在线享受奇艺网站内全部免费高清正版视频.腾讯视频视频播放器内容丰富,影视更新快,包含腾讯视频所有的视频内容,在线享受腾讯视频站内全部免费 ...
最新文章
- 谈Objective-C Block的实现
- linux安装显卡驱动的run文件,Linux系统下安装NVIDIA显卡驱动(run格式文件)
- 使用 soapUI 测试 REST 服务
- ORACLE 表空间SQL
- win10查看pcie设备_壹拓网科技解密WIN10系统使用向日葵开机棒远程开机需要设置几个地方...
- H264中的SPS、PPS提取与作用
- SQL Server查询中特殊字符的处理方法
- Object.definePropety
- Given two binary trees, write a function to check if they areequal or not.
- JAVA8的双重循环怎么优化_Java8处理List的双层循环问题
- HDOJ 1720 A+B Coming
- 面向能源效率的云计算
- 克里希纳驼奶粉食疗可养生?
- web页面设计实训——03.12
- Aurora核使用中tx_dst_rdy信号拉低问题(续)
- 准确测试身高的软件,情侣身高对比软件-身高模拟对比软件预约 v1.0最新版_5577安卓网...
- Shopee开店不懂英语怎么办?
- 黑马程序员--Objective-C之--OC中的内存管理
- 插入top.php,CmsTop手动区块(就是phpcms的碎片)的内容支持三种添加方式
- java currenthread_java-Intellij IDEA评估表达式窗口和Thread.curren...
热门文章
- python 的csr_python的高级数组之稀疏矩阵
- java 实现按规则自增功能_java运算符详解 - osc_74vaali6的个人空间 - OSCHINA - 中文开源技术交流社区...
- java list 取几个字段组装成map_24道Java各类常见问题整理
- 交换机的硬件故障问题总结
- 【渝粤教育】电大中专电子商务网站建设与维护 (11)作业 题库
- 【渝粤题库】陕西师范大学210011幼儿园语言教育作业(高起专)
- 【渝粤题库】广东开放大学 劳动关系理论与实务 形成性考核
- html 并集选择器,CSS并集选择器
- 服务器安装mysql要密码_在阿里云服务器上安装mysql及重置密码
- MATLAB库函数unwrap(相位解卷绕)的C语言实现