两个图文件的问题

时间:2011-04-16 21:04:51

标签: user-interface matlab

我有2个无花果档案。从另一个无花果(比如图1)中调用一个无花果(比如图2)。我的问题是当fig2打开时,用户不能点击或编辑图1中的字段。一旦用户关闭图2,他/她就可以编辑图1.我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以将fig2的WindowStyle属性设置为'modal'。当fig2打开时,这将阻止 ALL 其他窗口被访问 - 而不仅仅是fig1。

如果您只想让fig1无法访问,请使用中所述的机制 http://undocumentedmatlab.com/blog/disable-entire-figure-window/

答案 1 :(得分:0)

我想补充一下Yair的回答。在我所使用的所有GUI中,我通常也希望暂停代码执行。仅使用Modal选项,代码不会停止。下面我有一个关于使用uiwait和模态选项Yair(和他的链接)的简单例子。

请注意,如果您尝试仅禁用一个数字并继续执行代码,Yair的链接可能是您的最佳选择。

希望这有帮助!

%% UIWait Example
clc
fig1 = figure('Name', 'fig1 - UIWAIT');
fig2 = figure('Name', 'fig2 - UIWAIT');
% Wait for figure 2 to close
disp('Note that the script execution halts, but other Matlab windows are still active')
uiwait(fig2)
disp('Script Execution continues on!')
disp('Figure 2 Closed!')
close(fig1);
disp('Figure 1 Closed')

%% Modal Example with uiwait
clc
fig1 = figure('Name', 'fig1');
disp('Note that the script execution halts, and All Matlab windows are blocked')
fig2 = figure('Name', 'fig2 - MODAL','WindowStyle', 'modal');
% Wait for figure 2 to close
uiwait(fig2)
disp('Figure 2 Closed!')
disp('Script Execution continues on!')
close(fig1);
disp('Figure 1 Closed')

%% Modal Example
clc
fig1 = figure('Name', 'fig1');
disp('Note that the script execution does not halt, and All Matlab windows are blocked')
fig2 = figure('Name', 'fig2 - MODAL','WindowStyle', 'modal');
% Wait for figure 2 to close
disp('Script Execution continues on!')
close(fig1);
disp('Figure 1 Closed')