2016-12-13 31 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小部件。轉換完成後,我學會使用自定義樣式,我可能會考慮通過樣式進行對話框自定義 –