You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让MATLAB的uifigure窗口直接显示在屏幕中央?

让MATLAB uifigure直接在屏幕中央显示(无闪烁)

确实,用movegui的两步操作会导致窗口先弹出再移动,带来明显的卡顿感,体验很不好。其实我们可以直接在创建uifigure时就计算并指定居中的位置,让窗口一启动就处于屏幕中央,完全避免闪烁问题。

直接实现的代码示例

先获取屏幕尺寸,然后计算出窗口居中时的坐标,再创建uifigure:

% 获取主屏幕的尺寸(格式为 [左边界, 下边界, 屏幕宽度, 屏幕高度])
screen_dims = get(0, 'ScreenSize');

% 定义你想要的窗口大小
win_width = 300;
win_height = 300;

% 计算居中的位置坐标
center_left = (screen_dims(3) - win_width) / 2;
center_bottom = (screen_dims(4) - win_height) / 2;

% 直接创建居中显示的uifigure
fig = uifigure('Position', [center_left, center_bottom, win_width, win_height]);

封装成工具函数(方便复用)

如果经常需要创建居中的uifigure,可以把逻辑封装成一个小函数:

function fig = centered_uifigure(win_width, win_height)
    % 获取屏幕尺寸
    screen_dims = get(0, 'ScreenSize');
    % 计算居中坐标
    center_x = (screen_dims(3) - win_width) / 2;
    center_y = (screen_dims(4) - win_height) / 2;
    % 创建居中窗口
    fig = uifigure('Position', [center_x, center_y, win_width, win_height]);
end

调用的时候只需要一行:

fig = centered_uifigure(300, 300);

多显示器场景补充

如果是多显示器环境,get(0, 'ScreenSize')只会获取主显示器的尺寸。如果想让窗口在当前活动显示器居中,可以用get(groot, 'MonitorPositions')获取所有显示器的信息,再根据需求选择对应显示器的尺寸进行计算,核心逻辑和上面一致。

内容的提问来源于stack exchange,提问作者ashkan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 18:23:11