2014-11-21 2 views
0

MATLAB GUI에서 개체의 특정 속성을 설정하는 데 문제가 있습니다. 경우에 따라 스크립트에서 오류를 반환합니다.MATLAB GUI- 문자열 속성을 설정하면 '유효하지 않거나 삭제 된 개체'가 반환됩니다.

유효하지 않거나 삭제 된 개체입니다.

다음은 변경하고 싶은 텍스트 필드입니다.

conTxt = uicontrol('Style','text', 'String','Offline','ForegroundColor',[.99 .183 0.09], ... 
     'Position', [70 20 100 30],... 
     'Parent',hTabs(1), 'FontSize',13,'FontWeight','bold'); 

텍스트 필드가 사용자에게 피드백으로 사용되는 직렬 통신을 설정했습니다. 시리얼에서 응답이 도착하면 다음 행이 실행됩니다.

set(conTxt,'ForegroundColor', [.21 .96 .07],'String','Online'); 

해결 방법을 알고 있습니까?

+0

가끔 또는 항상? 텍스트 상자를 GUI의 핸들 구조에 할당합니까? –

+0

1 - 명령이 실패하는 경우가 있습니다. 배경색과 시간의 90 % 문자열 값을 토글 할 수 있습니다. 2 - No. – UserK

답변

1

댓글이 너무 길고 추악하기 때문에 답변으로 게시하고 있습니다.

GUI에서 텍스트 상자를 인식하지 못하는 것 같습니다. 콜백이 실행될 때 GUI가 요소를 찾을 위치를 알지 못하기 때문에 핸들 구조에 없기 때문입니다. 당신이 다음 시도하는 경우 : 다른 구성 요소 등

handles.conTxt = uicontrol('Style','text', 'String','Offline','ForegroundColor',[.99 .183 0.09], ... 
     'Position', [70 20 100 30],... 
     'Parent',hTabs(1), 'FontSize',13,'FontWeight','bold'); 

과 :

1), 핸들 구조 같은 것을 구성 요소를 저장합니다. ,

guidata(handles.figure,handles); 

3) 그런 다음 각 콜백의 시작 부분에이 같은 것을 사용하여 프로그래밍 GUI의 설정의 끝에서

2)

는 GUI의 guidata 속성 핸들 구조를 업데이트 :

handles = guidata(gcf); 

핸들 구조를 가져 와서 해당 구성 요소에 액세스합니다.

희망 하시겠습니까?

+0

안녕하세요. @ narutov6 그래서 문제를 해결 했습니까? –