|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在做《Matlab面向对象编程》第七章取存款的GUI功能时,生成面板的时候没有报错,但是更改存取款数的值并按withdraw和deposit两个按钮没有反应,存款总数一直不变,感觉是callback函数没有起作用,能帮我看看哪里不对嘛?谢谢!
) Q) F2 W1 B3 a: W- balance = 500;%总金额
- input = 0;%存取款数
- hfig = figure('pos',[100,100,300,300]);
- withdrawButton = uicontrol('parent',hfig,'string','withdraw',...
- 'pos',[60 28 60 28]);
- depositButton = uicontrol('parent',hfig,'string','deposit',...
- 'pos',[180 28 60 28]);
- inputBox = uicontrol('parent',hfig,'style','edit','pos',[60 85 180 28],...
- 'string',num2str(input),'Tag','inputBox');
- balanceBox = uicontrol('parent',hfig,'style','edit','pos',[180 142 60 28],...
- 'string',num2str(balance),'Tag','balanceBox');
- textBox = uicontrol('parent',hfig,'style','text','pos',[60 142 60 28],...
- 'string','balance');
- % set(withdrawButton,'callback',@(o,e)withdraw_callback(o,e));
- % set(depositButton,'callback',@(o,e)deposit_callback(o,e));
- withdrawButton.Callback=@withdraw_callback;
- depositButton.Callback=@deposit_callback;% B; z/ c1 M8 t( W$ R* e5 r
, o- y+ W5 _$ K; l! V5 T
+ g0 g* x6 p4 o, c$ i
( ^! c( e3 {( F6 V" K/ V Y- function withdraw_callback(o,e)
- hfig = get(o,'parent');%取款
- inputBox = findobj(hfig,'Tag','inputbox');
- input = str2double(get(inputBox,'string'));
- balanceBox = findobj(hfig,'Tag','balancebox');
- balance = str2double(get(balanceBox,'string'));
- balance = balance - input;
- set(balanceBox,'string',num2str(balance));
- end' a) q( f' v! ?: q$ v% X' \0 E
& c& j! B# m: t! E
' V* Z* V8 v, R7 b9 ^* w9 E7 O9 Z
- function deposit_callback(o,e)
- hfig = get(o,'parent');%存款
- inputBox = findobj(hfig,'Tag','inputbox');
- input = str2double(get(inputBox,'string'));
- balanceBox = findobj(hfig,'Tag','balancebox');
- balance = str2double(get(balanceBox,'string'));
- balance = balance + input;
- set(balanceBox,'string',num2str(balance));
- end
- I1 T% l) X ~& t
+ P5 L" y4 v4 \* G( e1 ^& Z X4 z, ~& V ~+ ~6 e
2 }6 r& y* K$ T* n! x6 y4 z |
|