OO GUI 프로그램을 작성 중이며 set()
함수를 사용하여 GUI 요소 속성을 변경하는 데 문제가 있습니다. 나는 버튼을 끄고 켜는 속성을 변경하려고하고있다. 아래에서 같은 문제를 보여주는 요약 된 코드를 첨부했습니다. matlab에서 클래스를 처리하는 방식 등은 오히려 이상하게 느껴 지므로 문제는 단순히 시스템에 대한 오해로 인한 것일 수 있습니다. 어쨌든 handle AD.buttonExit
에서 set()
함수를 사용하려고 시도하면 initUI()
함수에서 명령을 실행할 때 예상대로 작동합니다. 다른 기능에서 동일한 작업을 시도하면 실패합니다. AD
의 컨텐 트를 인쇄하여 스택을 검사했습니다. initUI
함수에서는 명확하게 buttonExit
에 대한 핸들 값을 표시하지만 생성자 함수 (또는 다른 클래스 멤버 함수)에서는 그렇지 않습니다. 초보적인 실수를하는 것처럼 느껴지지만 나는 그것을 보지 못합니다. 누군가가 나를 도와 줄 수 있기를 바랍니다. GUI에서 클래스 처리
코드 :
classdef test
properties
AppUI;
buttonExit;
end
methods
function AD = test()
%draws UI
AD.initUI();
set(AD.buttonExit, 'Enable', 'on')
AD.test2()
end
function initUI(AD)
AD.AppUI = figure('Visible','off','Position',[520,321,695,482], 'MenuBar', 'none', 'Name', '3D Particle Tracking',...
'NumberTitle', 'off', 'Resize', 'off', 'Color', [0.94,0.94,0.94]);
AD.buttonExit = uicontrol('Enable', 'off', 'Style', 'pushbutton', 'Visible', 'on', 'Position', [35,29,181,31], 'String', 'Exit');
set(AD.AppUI, 'Visible', 'on');
%1 set(AD.buttonExit, 'Enable', 'on')
end
function test2(AD)
set(AD.buttonExit, 'Enable', 'on')
end
end
end
AD = AD.initUI();
에 어디 이상한 행동 발생합니까? btw. 첫 번째 추측으로 클래스는'handle' 클래스를 상속받습니다. – bdecaf