문제

저는 기능의 다양한 측면을 갖고 있으며 각각 고유한 uicontrol 패널이 있는 MATLAB GUI를 가지고 있습니다.한 패널을 선택하면 다른 패널은 보이지 않게 설정되고 그 반대의 경우도 마찬가지입니다.그러나 팝업 메뉴 형태로 동일한 입력 중 일부를 공유합니다.어떻게든 두 번째 패널에 메뉴의 '복제' 인스턴스를 포함할 수 있나요?중복되는 콜백과 uicontrol을 최대한 피하고 싶습니다.

도움이 되었습니까?

해결책

uicontrol이 Figure의 직계 자식이라면 모든 항목 앞에 배치할 수 있을 것 같습니다.

훨씬 간단한 해결책은 여러 uicontrol에 동일한 콜백을 사용하는 것입니다.속성 편집기에서 콜백 이름을 수정하고 이를 공통 콜백 함수로 설정할 수 있습니다.또한 필드(예: myPopupH)에서 OpeningFcn 동일한 방식으로 작동해야 하는 팝업 핸들을 저장하는 GUI입니다.그런 다음 콜백에서 다음을 사용합니다. hObject, 즉.모든 항목에 대한 첫 번째 입력 인수 get (팝업 메뉴의 수정된 상태에 액세스하기 위해) 호출하지만 handles.myPopupH 모든 것에서 set 호출하여 두 팝업이 항상 동일한 상태인지 확인할 수 있습니다.따라서 ui 개체는 중복될 수 있지만 모든 코드(훨씬 더 중요함)는 단일 복사본에만 존재합니다.

여러 UI 요소에 대해 단일 콜백을 일상적으로 사용하는 한 곳은 "취소" 버튼과 그림을 닫는 "X", 그리고 "파일" 중 하나에서 액세스할 수 있는 닫기 요청 기능입니다. -메뉴 항목.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top