标题:多个GUI互相调用时,一个GUI怎么把数据传递给另一个GUI啊?急!谢谢!!
只看楼主
james0802
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-6-2
 问题点数:0 回复次数:12 
多个GUI互相调用时,一个GUI怎么把数据传递给另一个GUI啊?急!谢谢!!
多个GUI互相调用时,一个GUI怎么把数据传递给另一个GUI啊?急!谢谢!!
搜索更多相关主题的帖子: GUI 数据 
2007-06-02 02:57
leki
Rank: 4
等 级:贵宾
威 望:10
帖 子:236
专家分:0
注 册:2007-4-15
得分:0 
我只会用全局变量,你可以将要传输的数据赋值给一个全局变量(用global定义),然后在你要调用的地方再定义一次同样的全局变量,这样就可以了

常见的GUI编程问题与解答 http://bbs./dispbbs.asp?boardid=216&id=148781&star=1#148781
2007-06-02 03:16
james0802
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-6-2
得分:0 

谢谢,我试试.你好辛苦啊,这么晚还不睡?

2007-06-02 03:40
snowrainbow
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-5-13
得分:0 

可以在调用界面的m文件中被调用点handles.answer=answer;(answer只是一个存储数据的变量)
guidata(handles.figure1,handles);
那么figure1(被调用界面)下再写一句取数据就可以了。


2007-06-02 09:51
james0802
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-6-2
得分:0 
这个终于搞定了……
2007-06-05 00:46
sandy1985
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-7-12
得分:0 
回复:(snowrainbow)可以在调用界面的m文件中被调用...
请问怎么取数据啊?
2007-06-12 21:33
zhangenter
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:390
专家分:0
注 册:2006-6-5
得分:0 
1.mydata = getappdata( FigureHandle, 'mydata' ) ;
2.handles = guidata( FigureHandle ); handles.mydata
3.mydata = get( UiHandle, 'UserData' ) ; % UiHandle为任意控件
4.globel mydata ; % 全部变量

比较常用的应该就那么几个,其他比如存mat或文本文件等,用的时候去读取文件,或者放在工作空间用fevalin去提取大概也有人用吧

OldHandle = findobj( \'Name\', \'悲伤\' ) ;if ~isempty(OldHandle),delete(OldHandle) ;end for Time = \'现在\':\'每一天\':\'永远\',set( gco, \'心情\', \'快乐\');end % 这段代码为你天天快乐而存在
2007-06-12 21:46
jinyujun2006
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-6-28
得分:0 
给一例子,谢谢!!
2007-06-30 11:48
jinyujun2006
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-6-28
得分:0 
没有成功!
2007-06-30 12:02
zhangenter
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:390
专家分:0
注 册:2006-6-5
得分:0 

4个简单的m文件来说明这四种方法
1. my_gui1.m 代码如下
function varargout = my_gui1( varargin )

if nargin == 0
figure;
uicontrol('str', '提取', 'cal', 'my_gui1(''get_data'', gcbo)' ) ;

str = 'hello!' ;
setappdata( gcf, 'mydata', str ) ;
else
feval( varargin{:}) ;
end

function get_data( h )

str = getappdata( gcf, 'mydata' ) ;
msgbox(str)

2. my_gui2.m 代码如下
function varargout = my_gui2( varargin )

if nargin == 0
figure ;

uicontrol('str', '提取', 'cal', 'my_gui2(''get_data'', gcbo)' ) ;

str = 'hello!' ;
handles = guidata( gcf ) ;
handles.MyData = str ;
guidata(gcf, handles ) ;

else
feval( varargin{:}) ;
end

function get_data( h )
handles = guidata(gcf) ;
str = handles.MyData;
msgbox(str)


3. my_gui3.m 代码如下
function varargout = my_gui3( varargin )

if nargin == 0
figure ;

uicontrol('str', '提取', 'cal', 'my_gui3(''get_data'', gcbo)' ) ;

str = 'hello!' ;
set( gcf, 'UserData', str ) ;

else
feval( varargin{:}) ;
end

function get_data( h )
str = get( gcf, 'UserData' ) ;
msgbox(str)

4. my_gui4.m 代码如下
function varargout = my_gui4( varargin )

if nargin == 0
figure ;

uicontrol('str', '提取', 'cal', 'my_gui4(''get_data'', gcbo)' ) ;

global str
str = 'hello!' ;
else
feval( varargin{:}) ;
end

function get_data( h )
global str
msgbox(str)

[此贴子已经被作者于2007-7-1 1:34:40编辑过]


OldHandle = findobj( \'Name\', \'悲伤\' ) ;if ~isempty(OldHandle),delete(OldHandle) ;end for Time = \'现在\':\'每一天\':\'永远\',set( gco, \'心情\', \'快乐\');end % 这段代码为你天天快乐而存在
2007-07-01 01:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-144208-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.139184 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved