matlab gui 如何在程序运行时使任何操作都无效

用gui跑大程序时,想让自己的操作无效,以免因误操作而功亏一篑,所以想锁定对gui的操作,等程序跑完后自动解锁。本来是想在程序开始时弹出一个没有按钮的对话框,并用uiwait锁定,到跑完后delete掉就行,但是不知道如何让去掉消息框上的按钮。求指教。别的方法达到目的也行。只有20分,全给了。。。
坐等啊。。

个人觉得楼上建议把GUI设为不可见的做法不妥,因为那种情况下用户完全有可能不小心把MATLAB给关闭了。

 

提供一段简单的代码供参考:

% 创建信息提示窗口
waitfig = figure('CloseRequestFcn', '', 'WindowStyle', 'modal');
uicontrol('style', 'text', 'Units', 'normal', 'Pos', [0 0.5 1 0.1], ...
    'Horiz', 'center', 'Fontsize', 20, 'str', 'Calculating ...');

% 模仿计算过程,等待10秒
pause(10);

% 删除窗口
delete(waitfig);

代码的要点是:

(1)把窗口风格设为modal,以接管整个MATLAB的输入,避免用户对其它窗口进行误操作;

(2)屏蔽所创建窗口的关闭请求,使得窗口不能被关闭。

当然,窗口大小以及窗口中显示的内容等可根据需要再自行修改,以使得更美观醒目。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-15
误操作,你可以把用不到的按钮的enable属性设置为false就行了
第2个回答  推荐于2018-03-28
MATLAB 是一种单线程运行结构,在GUI后台有程序语句运行时,是无法对前台程序进行操作的。系统会将操作记录,在后台程序运行结束后按顺序执行。
题主说的可以通过将figure的enable选项改为false,执行结束后将其改为true来实现。
第3个回答  2013-08-14
运行的时候把gui 设置成不可见就可以了吧。
比如主窗口叫hGUI
set(hGUI,'visible','off');