save GUI fig by name from edit text
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi
I am trying to save a figure in GUI, I want when the user click on a push button the below window appear.
I applied the follwoing function:
filter = {'*.m';'*.emf';'*.*'};
[file, path] = uiputfile(filter);
but when I press (save) nothing is saved. The problem is how to connect my figure to the above function.
댓글 수: 4
Rik
2019년 11월 15일
Note that copying the figure is not going to copy the callbacks, so you will end up with a figure that is only a visual copy of your GUI but no longer has any functionality.
Adam Danz
2019년 11월 15일
I was worried about that too but it turns out that the goal was to copy the embedded axes onto an external figure.
채택된 답변
Adam Danz
2019년 11월 15일
Place this code in a callback function designed to save the figure. See inline comments for details.
newFig = figure(); % Create a new parent figure
newAx = copyobj(handles.axes1, newFig); % Copy your GUI axis to the new figure
% ^^^^^^^^^^^^^ Put your axis handle here
% Reposition the axis to default position within the new figure
newAx.Units = 'Normalize';
newAx.Position = [.13, .11, .76, .82];
% Ask user for path and filename
[file, path] = uiputfile('.fig');
% Save figure and print out a confirmation.
savefig(fullfile(path,file));
fprintf('Figure saved: %s\n', file) % optional
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!