2016-12-09 84 views
1

我在寫一個小腳本開始習慣在MATLAB waitbars,我想設置waitbar綠色和臉部顏色爲藍色的邊的顏色,但它只是不工作;我不斷獲得綠色的臉色和黑色的邊緣。 下面的代碼:Matlab的GUI waitbar

wb=waitbar(0,'Iterating...'); 
set(wb,'Name','Changing color'); 
wbobject=findobj(wb,'Type','Patch'); 
set(wbobject,'EdgeColor',[0 1 0],'FaceColor',[0 0 1]); 
for i=1:1000 
    waitbar(i/1000) 
end 
delete(wb); 

另外一個問題:你介意解釋或引​​用我的來源,以瞭解什麼是MATLAB補丁?

謝謝!

+0

你試過'設置(WB, 'Edgecolor',...)'?只需使用對象的名稱? – marcoresk

+0

marcoreskt:是的,我沒有,但它沒有工作 – chsafouane

回答

1

您無法看到EdgeColor中的更改,因爲waitbar圖包含一個line對象,即該輪廓。你要找到該行的對象,並改變它的Color財產

wb=waitbar(0,'Iterating...'); 
set(wb,'Name','Changing color'); 
wbobject=findobj(wb,'Type','Patch'); 
set(wbobject,'EdgeColor',[0 1 0],'FaceColor',[0 0 1]); 

hline = findall(wb, 'type', 'line'); 
set(hline, 'Color', [0 1 0]); 

enter image description here

另外一個patch對象在documentation描述。它本質上是一個填充多邊形。 waitbar使用一個來表示指示進度的矩形。

+0

Suever謝謝 – chsafouane