uipanel position jumping randomly

2 ビュー (過去 30 日間)
Martin Privat
Martin Privat 2022 年 10 月 26 日
回答済み: Martin Privat 2022 年 11 月 4 日

On 2021b, the following code runs with two different behaviors

Either the panel has the correct position (first picture) or it is too big (second picture)>
f = figure('PaperUnits','centimeters', ...
'PaperSize',[21 29.7], ...
'PaperPosition',[0 0 21 29.7], ...
'PaperPositionMode','manual', ...
'PaperType','A4',...
'Units','centimeters',...
'Position',[0 0 21 29.7],...
'Resize','off',...
'MenuBar','none',...
'ToolBar','none');

page_margin = 1.5;
pos = [page_margin page_margin 21-2*page_margin 29.7-2*page_margin];
main_panel = mypanel(f,pos);

function p = mypanel(parent,pos)
p = uipanel(parent,...
'Units','centimeters',...
'Position',pos,...
'BorderType','none',...
'BackgroundColor','w',...
'ShadowColor','w');
end

  1 件のコメント
Martin Privat
Martin Privat 2022 年 11 月 4 日
Here is what the problem looks like on two runs of the code

サインインしてコメントする。

採用された回答

Martin Privat
Martin Privat 2022 年 11 月 4 日
Many thanks to Daniele Sportillo for finding a solution, this seems to do the trick:
f = figure()
pause(0.1)
set(f,'PaperUnits','centimeters', ...
'PaperSize',[21 29.7], ...
'PaperPosition',[0 0 21 29.7], ...
'PaperPositionMode','manual', ...
'PaperType','A4',...
'Units','centimeters',...
'Position',[0 0 21 29.7],...
'Resize','off',...
'MenuBar','none',...
'ToolBar','none');
page_margin = 1.5;
pos = [page_margin page_margin 21-2*page_margin 29.7-2*page_margin];
main_panel = mypanel(f,pos);

その他の回答 (0 件)

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by