退出确认的问题
书上说: set(gcf,'CloseReqestFcn',' ') 该语句用空字符串代替'CloseReqestFcn',因此就禁止了通过关闭按钮来实现关闭窗口功能(确实可以)。set函数的第二个字符串输入可以是任何合法的Matlab语句序列。通过该字符串的设置,用户可以在关闭窗口之前,获得确认关闭的提示信息。这句没理解透,一直实现不了关闭确认的功能。哪位高手给解释下吧:loveliness: set(gcf,'CloseRequestFcn','exit')
[ 本帖最后由 w89986581 于 2007-6-20 11:01 编辑 ]
回复 #2 w89986581 的帖子
你的招太强了,一下子把matlab的窗口全关完了。我是想在退出这个gui界面的时候进行确认,下边是我退出菜单的callback的一部分,可以实现退出确认。如何通过在用户关闭gui界面右上角的关闭按钮也实现退出确认呢?代码怎么加?question='确定关闭该界面?';
button=questdlg(question,'退出确认','Yes','No','No');
switch button
case 'No'
quit cancel;
otherwise
close;
end 原帖由 花如月 于 2007-6-20 11:18 发表 http://www.chinavib.com/forum/images/common/back.gif
你的招太强了,一下子把matlab的窗口全关完了。我是想在退出这个gui界面的时候进行确认,下边是我退出菜单的callback的一部分,可以实现退出确认。如何通过在用户关闭gui界面右上角的关闭按钮也实现退出确认呢? ...
function Untitled3
figure;
set(gcf,'CloseRequestFcn',@my_closefcn);
function my_closefcn(src,evnt)
% User-defined close request function
% to display a question dialog box
selection = questdlg('Close This Figure?',...
'Close Request Function',...
'Yes','No','Yes');
switch selection,
case 'Yes',
delete(gcf)
case 'No'
return
end
[ 本帖最后由 花如月 于 2007-8-1 19:05 编辑 ] 谢谢8兄指点,已经实现了。不过就是不明白my_closefcn(src,evnt)的2个参数是做什么用的?因为我刚开始的时候,把2个参数忘了加结果就退不出去了。加上后正常,在用set(gcf,'CloseRequestFcn',@my_closefcn);好像也没用到输入参数
[ 本帖最后由 eight 于 2007-6-21 22:28 编辑 ] 原帖由 花如月 于 2007-6-21 21:49 发表 http://www.chinavib.com/forum/images/common/back.gif
谢谢8兄指点,已经实现了。不过就是不明白my_closefcn(src,evnt)的2个参数是做什么用的?因为我刚开始的时候,把2个参数忘了加结果就退不出去了。加上后正常,在用set(gcf,'CloseRequestFcn',@my_closefcn);好像 ...
这个我也不太懂,不过估计其作用类似消息传递,一个是源(也许是句柄),另一个是事件 帮助里有这个问题的,关于函数句柄的语法,原话:
In Handle Graphics, functions that you want to use as function handle callbacks must define at least two input arguments in the function definition:
The handle of the object generating the callback (the source of the event)
The event data structure (can be empty for some callbacks)
回复 #7 geoer 的帖子
谢谢楼上的,我英文不好。所以很少看英文的帮助文档,以后得加强学习了我怎么实现不了
http://forum.vibunion.com/forum/viewthread.php?tid=46800&page=1#pid245354你好啊!
你写的这个程序添加到哪里?我怎么实现不了?
回复 #9 pxq911 的帖子
4楼正解摸索了一个小时,终于解决了!
终于解决了,太爽了!!!在function varargout = pxq3_OutputFcn(hObject, eventdata, handles)添加相应代码就可以解决了!
以下是我的程序:
function varargout = pxq3_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
set(gcf,'CloseRequestFcn',@my_closefcn); %关闭窗口程序
function my_closefcn(src,evnt)
global System_Data;
if System_Data
ErrorDlg('正在运行仿真,请停止!');
return;
else close;
end 4楼真乃高人啊
页:
[1]