2013-04-23 2 views
4

저는 uicontrol, uimenu 등을 호출하여 수동으로 GUI를 빌드하는 Matlab 스크립트 더미를 상속 받았습니다. 수년 동안 우리는 GUI에 요소를 제거하고 요소를 추가해야했습니다. 위치는 스크립트에서 수동으로 지정됩니다. 레이아웃은 누락 된 요소를 수용하기 위해 실제로 변경되지 않았으므로 실제로 쓰레기 더미처럼 보이기 시작합니다.Matlab GUI를 가이드 GUI로 변환

matlab에 스크립트 된 gui를 가이드로 사용할 수있는 것으로 자동 변환하는 방법이 있습니까? 차라리 처음부터 다시 시작할 필요가 없습니다.

답변

6

GUIDE로 생성 된 GUI는 수동 스크립팅 된 GUI보다 훨씬 낫지 않습니다 (유지 관리면에서 나쁘지는 않을지라도).

MATLAB에는 내장 레이아웃 관리자가 없습니다 (border layout, gridbag layout 및 기타와 같은 FEX에 사용자 제공 템플릿 관리자가 있음). 코드를 리팩터링하는 경우 GUI 레이아웃 관리자를 사용하는 것이 좋습니다.

질문에 대답하기 위해 afaik에는 이러한 변환을위한 자동 도구가 없습니다. uiflowcontaineruigridcontainer : 정확하기


는, MATLAB는 일부 문서화되지 않은 레이아웃 매니저가 있습니다. 이 부분을 참조하십시오. article Yair Altman

+0

GUIDE를 왜 싫어할 수 있습니까? – mjr

+1

@mjr : 나는 그것을 싫어하지 않는다. 그것은 단지 귀하의 설명을 기반으로, 나는 당신의 프로젝트가 GUIDE에서 드래그 - 드롭 스타일로 관리하는 것이 수동으로 UI 컨트롤 요소 위치를 하드 코딩하는 것보다 훨씬 나은 단순한 GUI 이상으로 성장하기 시작했다는 인상을 받았습니다 코드에서. 더 나은 해결책은 레이아웃 관리자가 "레이아웃"에 대해 걱정할 수있게하는 것입니다. 예를 들어 [GUI 레이아웃 도구 상자] (http://www.mathworks.com/matlabcentral/fileexchange/27758-guide-toolbox) FEX에 (그것도 훌륭한 문서를 가지고있다) – Amro

2

글쎄, 자동 변환 유틸리티는 없지만 GUIDE를 사용하여 처음부터 모든 것을 만들 필요는 없습니다.

GUI를 실행하여 그림 창을 그림 파일로 저장하십시오. 이 파일은 가이드로 편집 할 수 있습니다. 그러나 코드에서 수동으로 조정해야합니다. 특히 핸들에 대한 액세스가 필요하고 콜백 함수에 대해 확신 할 수없는 경우 특히 그렇습니다.

그러나 Amro가 이미 지적한 것처럼 GUIDE는 완벽한 솔루션이 아닙니다.