2012-11-20 114 views
1

我試圖改變我的ttk.Entr小部件中的單詞的顏色,當我將狀態設置爲disabled時,我查了一下手冊,有一個選項disabledforeground,所以我寫了一個測試片段作爲(順便說一句,我在Python 2.7下)tkinter ttk輸入小部件-disabledforeground

from Tkinter import * 
from ttk import * 

root=Tk() 

style=Style() 
style.configure("TEntry",disabledforeground='red') 

entry_var=StringVar() 
entry=Entry(root,textvariable=entry_var,state='disabled') 
entry.pack() 

entry_var.set('test') 

mainloop() 

但結果顯示「測試」的顏色沒有變化,任何想法是什麼錯?

回答

1

嘗試使用Style.map而不是configure

from Tkinter import * 
from ttk import * 

root=Tk() 

style=Style() 
style.map("TEntry", 
      foreground=[("active", "black"), ("disabled", "red")] 
     ) 

entry_var=StringVar() 
entry=Entry(root,textvariable=entry_var,state='disabled') 
entry.pack() 

entry_var.set('test') 

mainloop() 
+0

對不起,也沒有改變。 –

+0

這很奇怪。我檢查了它,它適用於我。 – Junuxx

+0

哎呀!對不起,我的壞,忘了改變狀態,它現在的作品! –

3

我認爲disabledforeground是tk小部件的選項,但不適用於ttk小部件。在這個頁面上

http://wiki.tcl.tk/38127

你會看到的部分代碼這樣的事情適用於Tk部件:

{-disabledforeground disabledForeground} 

這裏-disabledforeground是指一個配置選項和disabledforeground(不含領先減號)是指在頁面底部附近定義的顏色:

set colors(disabledForeground) {#a3a3a3} ; # -disabledfg 

您會看到諸如thi S IN的部分代碼,適用於TTK窗口小部件:

{map -foreground disabled disabledForeground} 

這裏-foreground是配置選項,禁用是窗口小部件可以在狀態再次,disabledforeground要時使用的實際顏色。該小部件處於該狀態。

我不是一個Tcl程序員,所以我從tkinter和ttk這裏推斷出來,但這是我能想出的唯一合理的代碼解釋。