How to move panels and uicontrols collectively as a group in a figure?

7 Ansichten (letzte 30 Tage)
I have a giant GUIDE constructed GUI with many panels and multilevel subpanels and then uicontrols and graphs all over those panels. When I started four years ago, I did the mistake to build the GUI for one screen resolution only. I've tried numerous ways to make the GUI look good in other resolutions by scaling it but there are always some controls that looks ugly or end up in the wrong place.
As a compromise solution, I now plan not to try to scale the GUI but allow it to shrink at higher screen resolutions. I would, however, like the GUI to be centered on the screen and the figure window to be maximized to fill the whole screen. Right now the GUI bounding box is alignes with the lower left corner of the figure window when it is maximised. My question is: how can I move all these GUI components collectively as a group inside the figure? I am looking for something like "select all" and then specify a fixed pixel displacement in x and y. Can it be done?
  2 Kommentare
Adam
Adam am 12 Aug. 2016
Do you mean how do you do it in GUIDE or programmatically or as a a user once you have launched the GUI?
Fredrik Gustavsson
Fredrik Gustavsson am 12 Aug. 2016
Thanks. It should be done programatically.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Fredrik Gustavsson
Fredrik Gustavsson am 12 Aug. 2016
By selecting all objects directly descendant from the main figure (with handles hObject) and only shift them, it seems to work as I would like to:
firstLevelHandles=findall(hObject,'parent',hObject);
currentRes=get(0,'monitorposition'); %the current screen resolution
shiftPos=[(currentRes(3:4)-[1366 768])./2 0 0]; %1366x768 is the default resolution
for i=1:length(firstLevelHandles)
basePos=getpixelposition(firstLevelHandles(i),true);
setpixelposition(firstLevelHandles(i),basePos+shiftPos,true);
end

Weitere Antworten (0)

Kategorien

Mehr zu Migrate GUIDE Apps finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by