Python实时更改列表框颜色

时间:2016-12-13 01:47:54

标签: python tkinter listbox

Win7,Python 2.7,Tkinter

我一次在屏幕上有几个列表框,我正在设置一种让用户更改颜色(背景,文字颜色,边框宽度,边框颜色等等)的方法。还有更多只是列表框,有标签框,进度条,窗框,仅举几例。

列表框(和其他小部件)标签在全局文件中声明,thuis:

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

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

目前,在我的Settings.py文件中,我手动设置每个列表框(和其他小部件)但是,当然,如果我稍后添加一个小部件,我必须记得更改Settings.py文件。

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

如果有事件或某种性质,我可以为每个列表框设置...

谢谢,Mark。

1 个答案:

答案 0 :(得分:2)

选项1:定义Listbox的子类,注册您创建的每个列表框,以便在用户更改设置时,您可以遍历列表框的集/列表。

选项2:使用ttk.Combobox或ttk.Treeview(仅包含顶级项目而不是子项目的扩展)。我认为可以将树视图视为一个增压列表框,具有多列和可能的层次关系。