2016-12-09 4 views
1

Я писал маленький скрипт, чтобы начать привыкать к панелям ожидания в MATLAB, и я хотел установить цвет края панели сообщений на зеленый, а цвет лица - синий, но он просто не работает; Я продолжаю получать цвет лица зеленым, а край - черным. Вот код: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

Вы пробовали 'set (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

 Смежные вопросы

  • Нет связанных вопросов^_^