2012-04-05 6 views
0

У меня есть флажок в графическом интерфейсе, который рисует прямоугольник на живой видеоролике, однако мне нужно, чтобы прямоугольник исчезал или удалялся, когда я снимаю его. Кто-нибудь знает, как это сделать?Matlab checkbox gui

Это мой код, я попробовал вложить вещи в другое, но ничего не работает.

function Box(hObject,eventdata) 

if (((get(hObject,'Value') == get(hObject,'Max')))) 
% Checkbox is checked-take appropriate action 
hold on; 
rectangle('Position',[50,50,100,100],'EdgeColor','r') 
else 
end 

ответ

0

Необходимо сохранить ручку, созданную прямоугольником функции. Затем добавьте этот дескриптор в большой дескриптор вашего графического интерфейса, чтобы вы могли получить к нему доступ после вызова callback снова.

Так измените функцию как так

function Box(hObject,eventdata,handles) 

if (((get(hObject,'Value') == get(hObject,'Max')))) 
% Checkbox is checked-take appropriate action 
hold on; 
handles.rectangleSave=rectangle('Position',[50,50,100,100],'EdgeColor','r'); 
guidata(handles.output,handles); 
else 
delete(handles.rectangleSave); 
end 

Если вы никогда не использовали ручки, пожалуйста, посмотрите здесь: http://www.matlabtips.com/on-handles-and-the-door-they-open/

handles.output обычно хранит дескриптор большого окна интерфейса, как описано здесь: http://www.matlabtips.com/guide-me-in-the-guide/