Tcl/Tk列表框为所有项目配置背景



我有一个列表框,里面有很多很多项(行)。每个项目可以有自己的背景颜色,由$my_listbox itemconfigure my_index -background some_color配置。是否有任何选项重置所有项目的背景一次,而不是迭代所有项目?

我在Windows7上运行Tk 8.5.14

它不应该花那么长时间来改变列表框中项目的背景,除非你在列表框中有太多的项目(它不无限缩放,像大多数GUI元素)或者你正在运行事件循环(也许通过做updateupdate idletasks)在每个调用之间设置项目的背景。这是因为Tk通常会推迟重绘小部件,直到它不再忙于运行回调,从而使重绘看起来像是立即发生的。所有项目的重新配置实际上是在内存中设置一个记录,并安排以后的重新绘制(如果没有已经在管道中),这真的非常快;它被设计成在比当前任何桌面或移动系统都慢得多的机器上运行速度快。

列表框大多不支持组操作(除了插入、删除和检索,但这些是特殊情况)。

如果根本的问题是你放了太多的项目,你将不得不切换到一个不同的小部件。例如,如果不使用很长的行(或关闭换行),text小部件可以更好地伸缩。它还支持一个更复杂的模型,用于如何通过其命名标签系统重新配置事物。

相关内容

  • 没有找到相关文章

最新更新