How to Limit figure size?
21 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
The minimum size should be constant but I have been unable to achieve this. I read some stuff but nothing seems to work properlly. Any help would be apreciated.
0 Kommentare
Antworten (3)
Kelly Kearney
am 17 Dez. 2015
If you're using a recent version of Matlab, you can accomplish this via the SizeChangedFcn of the figure:
h = figure;
figszfun = @(~,~) set(h, 'position', max([0 0 200 200], h.Position));
h.SizeChangedFcn = figszfun;
In this example, the figure will be always be at least 200 x 200 pixels.
For older versions (pre-2014b), the same thing can be accomplished via the ResizeFcn.
3 Kommentare
Kelly Kearney
am 18 Dez. 2015
Hmm, good question, Jan, but recursion doesn't seem to be a problem, at least not on my system. I do get the flicker effect if I manually resize the figure smaller than the limit, since the mouse-set size and resize function are fighting each other, but that stops as soon as I release the mouse click.
Perhaps that's the difference between ResizeFcn and the newer SizeChangedFcn? I really haven't looked into it much.
Chad Greene
am 17 Dez. 2015
Try setting the figure position in the form [xll yll width height] where xll and yll are the x and y positions of the lower left corner of the figure and width and height are, well, the width and height of the figure. Units are in pixels.
set(gcf,'pos',[10 10 300 200])
0 Kommentare
Jan
am 18 Dez. 2015
This FEX submission is updated soon to support modern Matlab versions: http://www.mathworks.com/matlabcentral/fileexchange/38527-limit-figure-size
1 Kommentar
Siehe auch
Kategorien
Mehr zu Creating, Deleting, and Querying Graphics Objects 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!