2011-07-11 26 views
1

我有一個Tk :: Button上有一個文件夾圖像。在某些情況下,我們禁用此按鈕,並且按鈕圖像顯示爲灰色。清潔看TCL GUI TK按鈕

例子:enter image description here enter image description here

反正是有清理禁用看看嗎?禁用時可綁定單獨的圖像以供使用?

set ::FileSelect::folder_image [image create photo -file "$::env(Path)/include/images/folder.gif"] 
set ::FileSelect::folder_image_disabled [image create photo -file "$::env(Path)/include/images/folder_disabled.gif"] 
ttk::button $widget_name.browse -image { $::FileSelect::folder_image disabled $::FileSelect::folder_image_disabled } 

回答

2

您可以在任何代碼中更改位圖將狀態設置爲禁用狀態。

例如:

if [should_be_disabled] { 
    button configure -state disabled -image $disabled_image 
} else { 
    button configure -state normal -image $normal_image 

如果您使用的主題小部件,你可以指定每個國家不同的圖像。例如,使用圖像disabled_image爲禁用狀態,併爲default_image正常狀態,你會做這樣的事情:

ttk::button .b1 -image {default_image disabled disabled_image} 

欲瞭解更多有關該主題的按鈕,看到the man page for ttk::button

+0

我使用的ttk ::按鈕,我試圖做基本上你的建議,但掙扎了一些。然後,我會創建兩個圖像,default_image和disabled_image並像你一樣提供它們嗎?我會再試一次,也許我只是在做一些奇怪的事情。 – tgai

+0

我必須在這裏丟失一些東西,我在問題中添加了上面的一些示例代碼。當我嘗試運行它時,它告訴我'image「$ :: FileSelect :: folder_image」不存在「。 – tgai

+0

@Tarmon:你對花括號有什麼瞭解?當你執行'-image {$ :: FileSelect ...}'時,它可能不會做你認爲正在做的事情。要回答您先前的問題,是的,您需要創建兩個單獨的圖像。 –