![]() |
在GUI中数据的传递
各位高手,我是在GUIDE中设计界面的,但我发现里面的数值或者说函数,总是不易传递。
比如说,我在一个pushbutton的callback的语句下写命令得到了一个向量,我现在要将这个向量的值传递到 “function 界面名_OpeningFcn(hObject, eventdata, handles, varargin)”语句下来供调用,请问各位高手怎么实现。 我想这也是很多GUI初学者都想知道的。望高手能人学者给出一些易懂的方案。发在论坛上,让我们这些初学者进步更快。 谢谢! |
使用全局变量
可以考虑使用全局变量,global命令,自己help global一下
|
不行啊
我试了一下,好像不行,能不能说的更具体,或者还有其他的方法吗?
|
在pushbutton-callback函数外,即界面的m文件中,利用global 定义你那个需要传递的向量。
|
首先非常感谢你的回复,可我做了,确实不行。我现在把我的主程序贴过来,你看看是不是这么回事。如下:
% --- Executes just before shi is made visible. function shi_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to shi (see VARARGIN) x=I; X=fft(x); handles.current_data=x; plot(handles.current_data); % Choose default command line output for shi handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes shi wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = shi_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in dakai_pushbutton. function dakai_pushbutton_Callback(hObject, eventdata, handles) % hObject handle to dakai_pushbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) H={'*.wav'}; [filename,pathname]=uigetfile(H,'请选择需要打开的声音'); file=strcat(pathname,filename); I=wavread(file); sound(I); global I; % --- Executes on button press in huatu_pushbutton. function huatu_pushbutton_Callback(hObject, eventdata, handles) % hObject handle to huatu_pushbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) plot(handles.current_data); 我现在要用到向量I的值(正如上面我想调用它一样),可准是显示错误:找不到I的值。到底怎么办啊? |
在用global定义变量时,需要在每一个用到此变量的callback下,都定义一次这个变量。
比如说,你调用的变量名称是aa 那么凡是有用到aa变量的callback程序下,都要用global定义aa,即是global aa(只在GUI的m程序里定义就可以了) |
解决了
高手tpwxhfh,我看你是刚注册的号,没想到你一进来就点中要旨,这个问题就解决了。特别感谢你。谢谢!当然也谢谢上面回复信息的人。谢谢你们无私的帮助。
|
用userdata哦:biggrin:
|
回复: 在GUI中数据的传递
定义成global变量,在这个变量的出现地方和所有需要使用的地方都定义成global就可以了
|
所有时间均为北京时间。现在的时间是 03:09。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.