uipanel position jumping randomly

7 ビュー (過去 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 件)

カテゴリ

Help Center および File ExchangeShifting and Sorting Matrices についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by