Filter löschen
Filter löschen

Turn non-resizeable figure into resizeable figure?

13 Ansichten (letzte 30 Tage)
Frank
Frank am 18 Nov. 2014
Kommentiert: Frank am 21 Nov. 2014
Hi, I created a GUI with 2 axes, which has to be not resizeable. In addition, I would like to install a button to save the GUI as a resizeable figure. My attempt was to use copyobj to copy the figure into a new window and then set Resize to 'on', i.e.
newfig = copyobj (gcf,0);
set(gcf, 'Resize', on)
Matlab creates a new figure, which however still is not resizeable. How do I reactivate the option to resize the window of the figure?
Thank you!

Antworten (3)

Orion
Orion am 18 Nov. 2014
Bearbeitet: Orion am 18 Nov. 2014
Hi,
In your callback function, don't use gcf, but the handle of your figure ( figure1 by default)
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
newfig = copyobj(handles.figure1,0); % copy the the figure to an exact new one
set(newfig, 'Resize', 'on'); % the copy is resizable

Frank
Frank am 20 Nov. 2014
Bearbeitet: Frank am 20 Nov. 2014
Thanks, that is working perfectly. Is there an option to 'handle' ALL axes, drop-down-menus etc. in that new figure and have them change size according to window size? I would usually do this by switching their units to 'normalized', but this is not working:
newfig = copyobj(handles.figure1,0);
set(gcf, 'Resize', 'on'); %this is working now
hAxes = findobj(gcf,'type','axes');
set (hAxes, 'Units', 'normalized');

Frank
Frank am 21 Nov. 2014
Bearbeitet: Frank am 21 Nov. 2014
Thanks for the answer. Now everything is changing size according to window size except for the axes. They keep constant sizes even though they are the most important element to change size. This is the code I'm using:
newfig = copyobj(handles.figure1,0);
set(newfig, 'Resize', 'on');
set(findall(newfig,'-property','Units'),'Units','Normalized')
  2 Kommentare
Orion
Orion am 21 Nov. 2014
Weird. It works for me (R2014a), and I'm pretty sure, this line works for previous releases (I don't know for the 2014b)
Anymay, try this line with a simple gui with just an axe and a button. If it works, then the problem comes from your gui, in which you should have configure something, that prevent resizing.
Frank
Frank am 21 Nov. 2014
Yup, that's probably it. I'll have to check the rest of my GUI. Thanks for your time so far, it's been very helpful!!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Interactive Control and Callbacks finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by