2016-12-13 30 views
0

Win7的,Python 2.7版,Tkinter的Python的变化列表框的颜色实时

我在屏幕上有几个列表框一次,和我设立的方式,让用户改变颜色(背景,文字颜色,边框宽度,边框颜色等)。不止是列表框,还有标签框,进度条,窗框等等。

列表框(和其他部件)标签在全局文件的Thuis声明:

globs.lb1 = tk.Listbox(root, ... 

我可以改变的属性很轻松了,但什么是更新所有的部件最好的方法是什么?

目前,我Settings.py文件,我手动设置每个列表框,(和其他部件),但是,还是当然,如​​果我以后再添加一个小部件,我一定要记得更改Settings.py文件。

我想使用ttk,我认为ttk允许我改变样式,然后ttk会记住哪些小部件使用该样式,但是在ttk中没有Listbox。

如果有这种性质我可以设定每个列表框...

谢谢,马克的事件或东西。

回答

2

选项1:定义列表框的子类,登记您创建,这样当用户更改设置,可以通过列表框的设定/列表iterater每个列表框。

选项2:使用(子作品仅顶级项目,而不是膨胀)一个ttk.Combobox或ttk.Treeview。我认为可以将树视图看作一个超级列表框,具有多列和可能的层次关系。

+0

妈的特里,这是快。我想我明白了,我可以用列表框(其它部件)作为标签列表中的条目全局列表,然后简单地做了,因为我在范围(LEN(global_list)):...我喜欢它。谢谢。 –

+0

甚至更​​好:'对于registered_widgets中的widget:repaint(widget)'。我最终可能会面临与IDLE同样的问题。用户可以自定义编辑器文本小部件(其中包括外壳),但不包含任何其他内容。我可以考虑选项1,但还有其他优先事项。我会等到选项2成为可能。我们开始使用ttk小部件。转换完成后,我学会使用自定义样式,我可能会考虑通过样式进行对话框自定义 –