2011-03-24 7 views
1

나는 두 개의 라디오 버튼 (동일한 uibutton 그룹에 있음), 을 가지고 있으며 일부 내부 gui 함수를 호출하는 동안 두 개의 라디오 버튼을 모두 확인할 수 있습니다.Matlab GUI에서 라디오 버튼의 이상한 동작을 방지하려면 어떻게해야합니까?

일부 알려진 버그가 matlab gui입니까? 아니면 라디오 버튼의 일부 속성으로이 동작을 방지 할 수 있습니까?

라디오 버튼의 'interruptble'및 'BusyAction'속성을 해제하려고했지만 GUI가 사용 중일 때도 확인할 수 있습니다.

답변

2

다른 상황에서도 내가 관찰 한 것과 비슷한 효과를 보았습니다. 그러나 GUI는 기본적으로 응용 프로그램이 백그라운드에서 사용중인 경우에도 입력을 받아야하므로 예상되는 동작입니다. 응용 프로그램이이 입력을 처리할지 여부를 결정하는 것은 응용 프로그램에 달려 있습니다.

당신은 명시 적으로 몇 가지 방법을 받아 들여되는 입력을 방지 할 수있는 다음 라디오 버튼 클릭에 응답하는 콜백에서

  • , 당신은 긴 처리하기 전에 라디오 버튼을 비활성화 할 수 있습니다. 라디오 버튼이 버튼 그룹의 유일한 컨트롤 인 경우 라디오 버튼에 핸들을 가져와 비활성화하고 DRAWNOW을 사용하여 GUI를 새로 고침으로써 버튼 그룹의 SelectionChangeFcn에서 쉽게 수행 할 수 있습니다. 그런 다음 처리가 완료되면 라디오 버튼을 활성화합니다.

    h = get(get(hObject, 'Parent'), 'Children'); 
    set(h, 'Enable', 'off'); 
    drawnow; 
    %# 
    %# LONG PROCESSING 
    %# 
    set(h, 'Enable', 'on'); 
    
  • 처리 중 전체 GUI를 사용하지 않도록하기 위해 위와 유사한 방법으로 사용 BLURFIGURE. 이 방법을 사용하면 취소 버튼을 제공 할 수 있습니다.


관련 문제