|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在做《Matlab面向对象编程》第七章取存款的GUI功能时,生成面板的时候没有报错,但是更改存取款数的值并按withdraw和deposit两个按钮没有反应,存款总数一直不变,感觉是callback函数没有起作用,能帮我看看哪里不对嘛?谢谢!
( E( y& \. Y) Q( d6 {* f! N7 j- 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;
8 q' T- {% h9 Z( Y s 1 h5 J* Y$ i& l7 Q3 }. p" t
9 S3 W8 Z/ v; i8 W% V" V; ]% d
) G% a; P+ X, p) y, W6 {1 ~, n- 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( y' {7 y" R/ ]8 n7 M C5 s7 o
3 ~2 D) r, k! k. y
5 `( p O4 D- V0 J, d! w4 j
* \6 Y' p& F. F$ @- 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
. Y$ S# L5 g/ e$ W& [" E9 ~$ ] w & R* S9 N) b; k: R: \6 }: P
( N( K* l2 O$ L* G
, k/ V5 W! G: _) G7 ^ |
|