如何在MATLAB模式中创建waitbar

Adn*_*nan 3 matlab user-interface modal-dialog progress-bar

我正在开发一个MATLAB GUI,我必须显示一个进度条.我有两个问题waitbar:

  1. 我想使进度条模态,以便用户在显示进度条时不能在GUI上执行任何其他操作.

  2. 条形图右上角有最小化按钮和关闭按钮(非常像任何其他窗口).如果按下关闭按钮,进度条将关闭,我希望隐藏或禁用此按钮,以便用户无法关闭该栏.

我该如何实现这些行为?

Amr*_*mro 5

例:

plot(sin(1:100))
h = waitbar(0, 'Please wait...');
set(h, 'WindowStyle','modal', 'CloseRequestFcn','');
for i=1:10
    waitbar(i/10, h);
    pause(.5)
end
delete(h)
Run Code Online (Sandbox Code Playgroud)

截图

通过设置CloseRequestFcn为空字符串,单击关闭按钮将不执行任何操作.你只需要等待循环完成.

请注意,你仍然可以点击Ctrl+c以杀死正在运行的计算(我认为这是一件好事,你根本不想惹恼用户!)