How to resize a GUI (which contains many items)
49 views (last 30 days)
I'm coming with a question about resizing a GUI in Matlab. I found the following examples on the site: "Panel" and "An Address Book Reader (GUIDE)" but it's not behaving as it should. For example the text on the buttons does not scale (I can't see the entire text when making the GUI small). About the text it is said this:"You can enable text in controls to resize automatically by setting the component's fontUnits to normalized, without the need for a ResizeFcn." and this is not working also. What about dealing with components like:edit text, table, axes, listbox, pop-up menu? Is something special about these when we talk about resizing?
I would be very grateful if you could help me. Thank you in advance! Diana A.
Fabricio Castro on 11 Nov 2017
Hi Diana Acreala,
This kind of problem is easily solved in python, but in matlab you need to create your own SizeChangedFcn to force the width and height of UI components to be fixed while the size of the parent window become larger or smaller.
I'm appending a rar file composed by two .m files. One script hold the code about the generation of the GUI and the other script is the edited SizeChangedFcn that is called by the GUI.
Hope I have helped you.
Robert Cumming on 3 Jan 2012
d = dialog ( 'windowstyle', 'normal', 'resize', 'on' );
uicontrol ( 'parent', d, 'style', 'pushbutton', 'units', 'normalized', 'position', [0.1 0.1 0.5 0.5], 'string', 'test', 'fontunits', 'normalized', 'fontsize', 0.1 );
Shubham on 4 Apr 2013
DjeKKo_O on 6 Sep 2016
I have the same problem, using GUIDE. I want to set all the elements Units and FontUnits to 'normalized'. It appears to work correctly for all kind of elements EXCEPT : 1/ for the images inserted in buttons => I handled it by writing a specific code in the Resize function 2/ for the FontUnits of panels or button groups => I don't understand what GUIDE is doing....
In the last case indeed, when I set panels or buton groups FontUnits to 'normalized', GUIDE automatically turns the FontSize attribute to '-1'. It is then impossible to change it. And when running the program, the font is still not affected by resizing...
Any clue to explain this unusual GUIDE's behaviour or to solve it by some lines within the resize function would be truly welcome.