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

조회 수: 5 (최근 30일)
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
Adam
Adam 2016년 8월 12일
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 2016년 8월 12일
Thanks. It should be done programatically.

댓글을 달려면 로그인하십시오.

채택된 답변

Fredrik Gustavsson
Fredrik Gustavsson 2016년 8월 12일
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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by