|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在做《Matlab面向对象编程》第七章取存款的GUI功能时,生成面板的时候没有报错,但是更改存取款数的值并按withdraw和deposit两个按钮没有反应,存款总数一直不变,感觉是callback函数没有起作用,能帮我看看哪里不对嘛?谢谢!
4 b7 q% S4 D( J E! I- 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;3 }& a# Y. ?7 C% C+ ?# H
- G6 h; k* w; p2 ?
7 ^& w9 M# L- A1 l% J1 s
! u/ z% E9 D* P) w9 ~$ t
- 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& f6 I& ?# S6 E( g( y
4 M: Q/ e$ v; u1 \. c
5 V/ A0 R" f0 W1 m# O9 I! x1 `. X9 V, R4 z! N" l x
- 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
5 j- {, U5 t! ~4 l) {! T8 w9 U
: K' M+ p1 ]6 R8 ]6 S, i# n( |+ k G- v) w
7 X0 x- b% |7 B+ A2 K |
|