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 ...
- 腾讯视频下载位置_腾讯视频怎么下视频到手机
很多人都使用腾讯视频,播放器家园网小编给大家分享一下腾讯视频下载位置_腾讯视频怎么下视频到手机相关内容.作为国内首家,全力打造正版视频平台的腾讯视频,将从流畅的观映体验.高清的视觉效果.贴心的分享感受 ...
- 腾讯视频下载官方_腾讯视频评论在哪
本文给大家整理了腾讯视频下载官方_腾讯视频评论在哪方面的内容.腾讯视频影音是一款界面轻松友好,功能全面完善,方便好用,绿色安全,完全免费的.专注视频播放的客户端软件,您可运行腾讯视频影音,在线享受腾讯 ...
- 腾讯视频下载格式_怎么下载腾讯视频
不管这个腾讯视频好用与否,都有一大批用户,本文播放器家园网小编分享腾讯视频下载格式_怎么下载腾讯视频.腾讯视频时刻为您推荐最新最火的视频,精彩不断随时观看.支持各种画质的下载,没网也能享受高视觉的享受 ...
- 腾讯视频下载电脑_腾讯视频如何设置允许腾讯视频驻留功能
本文给大家整理了腾讯视频下载电脑_腾讯视频如何设置允许腾讯视频驻留功能方面的内容.腾讯视频不断实践"三网合一"的使命,现已覆盖互联网.电视.移动三大终端,兼具影视.综艺.资讯三大内 ...
- 腾讯视频真实下载地址_腾讯视频如何多倍速播放视频
腾讯视频官网版是一款专注视频播放的客户端软件,您可运行腾讯视频,在线享受奇艺网站内全部免费高清正版视频.腾讯视频视频播放器内容丰富,影视更新快,包含腾讯视频所有的视频内容,在线享受腾讯视频站内全部免费 ...
最新文章
- 关于Python里的super用法研究
- Mercurial hg web server的配置
- java 对象流_java 对象流的简单使用
- 英文.数字和中文混合的彩色验证码【JSP】
- 1分钟破5亿,华为Mate 30系列抢疯了!
- 公司的终极目的不是营利:贝佐斯商业新哲学
- 关于ECLIPSE中JSP代码无提示
- POJ 1006 同余方程组
- kolla-ansible解析
- 2021-1123梦笔记
- java 监听udp_Java实现Udp网络编程
- roboware studio教程_2.2.RoboWare Studio安装及使用
- android pad刷机,平板刷机图文教程详解!小编手把手教你安卓平板电脑怎么刷机
- 受保护的Word文档如何编辑?
- H3C认证网络工程师H3CNE
- Spring事务管理 .
- 探析初代虚拟人Lil Miquela的陨落
- 一个简单的加密解密程序
- java新手案例_java初学者都要掌握的案例
- 绿色软件:飞鸽传书使用指南
热门文章
- api怎么写_使用Node.js原生API写一个web服务器
- 每台计算机需要配置网关吗,每台计算机的IP地址和网关以及子网掩码的设置有哪些规律或者规则吗?...
- 四个方面快速排查工业级光纤收发器死机原因
- 工业交换机的端口号结构特征
- 【渝粤教育】 国家开放大学2020年春季 1107传感器与测试技术 参考试题
- 【渝粤教育】广东开放大学 计量经济学 形成性考核 (21)
- 【渝粤题库】陕西师范大学100101美学概论作业(高起本)
- 【渝粤题库】广东开放大学 市场营销 形成性考核
- 经典蓝牙和低功耗蓝牙(BLE)有什么区别?
- python脚本设置环境变量_详解如何设置Python环境变量?