作者diva (Tremendo!)
看板MATLAB
标题[问题] GUI的function之间资料互传
时间Tue Dec 18 17:15:53 2012
我想做一个gui
不用guide的方式产生介面而使用uicontrol产生
我把我想做的问题简化成
做一个AddPush按钮在gui上
每按一次AddText上面的数字就会+1
并且利用function的方式来写callback
且所有的function
全部都写在同一个*.m档案当中
我想知道有没有
除了global变数之外的方法
或者有没有解说用guide产生gui後自动产生了一堆程式码的导读文章
里面一些东西自己读help看不太懂
ex hObject eventdata guidata gui_mainfc 等等
我自己试写的code 可是不work
function Main % 主程式 版面建置
clear all
close all
clc
FigMain=figure ;
figure(FigMain) ;
x=3 ;
AddPush=uicontrol('style','push','string','Add',...
'pos',[100 100 100 30],...
'callback',@Add,'userdata',
x) ;
^
假设AddPush和AddText程式顺序不可换
无法在此行把AddText丢入function Add当中
AddText=uicontrol('style','text','string',num2str(x),...
'pos',[200 100 100 30]) ;
function Add(varargin) % 副程式 加1
^^^^^^^^ 为什麽一定要加这个东西才不会出现错误
x = get(gcbo,'userdata') ;
x=x+1 ;
set(AddText,'string',num2str(x))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
无法读到function Main里面的东西
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.103.220
※ 编辑: diva 来自: 140.112.103.220 (12/18 17:23)
1F:推 s123123sam:我直接复制贴上 加入两个end 就可执行 抓的到x 12/18 20:13
2F:→ s123123sam:还有必须把新的x丢回Addpush的userdata 每次按才+1 12/18 20:14
3F:→ s123123sam:有关资料传递 目前习惯用setappdata与getappdata 12/18 20:16
4F:→ s123123sam:藏在某个元件 互相抓取 12/18 20:17
5F:推 webbber:水喔 12/19 13:09
6F:→ diva:谢谢 来去试试 12/19 19:29