我有一个有许多项目(行)的列表箱。每个项目都可能有自己的背景色,由$my_listbox itemconfigure my_index -background some_color
配置。是否有任何选项可以一次重置所有项目的背景,而不是迭代所有项目?目前,这是一个非常耗时的任务.
我正在运行Windows7 TK8.5.14
发布于 2016-08-18 13:06:04
更改列表框中项的背景不需要那么长时间,除非列表框中有太多的项(它不会像大多数GUI元素那样无限缩放),或者在每次调用之间运行事件循环(可能通过执行update
或update idletasks
)来设置项目的背景。这是因为Tk通常会推迟重绘小部件,直到它不再忙于运行回调,从而使重绘看起来立即发生。该项目的所有重新配置实际上都是在内存中设置一个记录,并安排稍后的重绘(如果没有正在进行中的话),这非常快;它被设计为在机器上快速运行,比任何当前的桌面或移动系统都慢得多。
列表框主要不支持组操作(除了插入、删除和检索之外,但这些都是特例)。
如果根本的问题是您要放入太多的项,那么您必须切换到另一个小部件。例如,如果您不使用很长的行(或关闭单词包装),text
小部件的扩展性会更好。它还支持通过其命名标记系统重新配置事物的更复杂的模型。
https://stackoverflow.com/questions/39012885
复制相似问题