Matlab实例学习--------不同界面的数据传递(多窗口编程)(实例)

实现功能为:两个窗口,一个主窗口一个子窗口。主窗口中有文本框和按钮,文本框用来显示子窗口中按钮的点击次数,按钮用来打开子窗口。     子窗口中包含文本框和两个按钮,文本框显示按钮点击次数,第一个按钮用来增加点击次数,第二个按钮用来返回主窗口。

实现步骤:

(1)创建两个GUI界面,分别为主窗口和子窗口,设置好相关属性和Tag等信息:

(2)编写主程序的回调函数:(主要是添加了按钮的响应函数)

function varargout = main(varargin)

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @main_OpeningFcn, ...
                   'gui_OutputFcn',  @main_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before main is made visible.
function main_OpeningFcn(hObject, eventdata, handles, varargin)

% Choose default command line output for main
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes main wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = main_OutputFcn(hObject, eventdata, handles) 

% Get default command line output from handles structure
varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
set(handles.figure1,'Visible','off');%将主窗口隐藏
times=child(handles.figure1);%调用显示子窗口并接收子窗口的返回参数
set(handles.text1,'String',num2str(times));%将文本设置为从子窗口接收过来的按钮点击次数

(3)编写子窗口的回调函数:

function varargout = child(varargin)

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @child_OpeningFcn, ...
                   'gui_OutputFcn',  @child_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before child is made visible.
function child_OpeningFcn(hObject, eventdata, handles, varargin)

% Choose default command line output for child
handles.output = hObject;

global count;%定义全局变量用来统计按钮点击次数
count=0;%初始化

main=varargin{1};%获取主窗口传递过来的参数
handles.mainhandles=guihandles(main);%将主窗口传递过来的参数添加到handles结构体中

% Update handles structure
guidata(hObject, handles);%更新handles结构体

% UIWAIT makes child wait for user response (see UIRESUME)
uiwait(handles.figure1);%设置等待,等待用户进行操作

% --- Outputs from this function are returned to the command line.
function varargout = child_OutputFcn(hObject, eventdata, handles) 

% Get default command line output from handles structure
global count;
varargout{1} = count;%输出返回参数,返回按钮点击次数

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
global count;
count=count+1;%按钮点击次数增加
set(handles.text1,'String',num2str(count));%设置文本为点击次数
% guidata(hObject, handles);%更新

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
set(handles.mainhandles.figure1,'Visible','on');%将主窗口显示出来
uiresume(handles.figure1);%用户操作完成
closereq%关闭子窗口

(4)程序运行结果

   

  

时间: 2024-11-13 08:08:18

Matlab实例学习--------不同界面的数据传递(多窗口编程)(实例)的相关文章

Android(java)学习笔记220:开发一个多界面的应用程序之界面间数据传递

1.界面跳转的数据传递 (1)intent.setData() --> intent.getData():     传递的数据比较简单,一般是文本类型的数据String:倘若我们传递的数据比较复杂(几种类型),或者比较长,这个方法就不怎么实用了. (2)如果有很多的不同类型的数据传递 intent.putExtra(key, value): • 基本类型的数据都可以传递,基本类型数据的数组也可以传递 • 对象必须是实现序列化接口的对象.Bitmap • 传递一组数据:          放数据:

Matlab实例学习----数据传递

(1)数据传递 global的实例: 实现GUI中单击按钮文本中的数字增加和减少: 创建GUI,添加静态文本,两个按钮,设置Tag和其他属性: 为按钮添加回调函数: function varargout = gui_var(varargin) % GUI_VAR MATLAB code for gui_var.fig % GUI_VAR, by itself, creates a new GUI_VAR or raises the existing % singleton*. % % H = G

matlab callback 数据传递

M文件中内的每个Callback都可以视为一个独立的可执行的接口,因此,任一个Callback触发后所执行的运算值若要在其他Callback中使用,就无法与MATLAB工作空间内的变量继续执行操作,也就是说每个Callback之间无法直接做沟通操作,因此变量的传递会有问题.主要的几种数据传递方式主要有:(1)宣告为全局变量将欲传递的变量在传递双方的Callback位置中都设置为全局变量,就可以直接在任一方的Callback中调用.这种方式是最简单的操作方式,但是当GUI全局变量太多时,在执行上就

Android页面跳转和数据传递

Android应用开发-页面跳转和数据传递 Activity Android四大组件之一 可以理解为Android中的界面,每一个界面都是一个Activity Activity的使用必须在清单文件中进行配置 在清单文件中, 创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> <action android:name="android.intent.action.M

无废话Android之smartimageview使用、android多线程下载、显式意图激活另外一个activity,检查网络是否可用定位到网络的位置、隐式意图激活另外一个activity、隐式意图的配置,自定义隐式意图、在不同activity之间数据传递(5)

1.smartimageview使用 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"

使用storyboard实现页面跳转,简单的数据传递

在storyboard中,界面的跳转是通过segue来实现的,利用它,省去了方法内写入跳转的代码. 一 视图跳转 <StoryBoard下的视图跳转> 我们知道:segue共有三种类型:push,modal,和custom.如下图://01 简单说下这三个的作用:使用导航栏压进新的控制器(push),模态的加载视图控制器(modal),自定义(custom). 好了,废话少说,现在开始我们的旅行. 1,首先建立一个Single View 模板的项目,记得勾选上storyboard.然后打开它,

React Native移动开发实战-3-实现页面间的数据传递

React Native使用props来实现页面间数据传递和通信.在React Native中,有两种方式可以存储和传递数据:props(属性)以及state(状态),其中: props通常是在父组件中指定的,而且一经指定,在被指定的组件的生命周期中则不再改变. state通常是用于存储需要改变的数据,并且当state数据发生更新时,React Native会刷新界面. 了解了props与state的区别之后,读者应该知道,要将首页的数据传递到下一个页面,需要使用props.所以,修改home.

Android基础笔记(七)-页面跳转和数据传递

Activity简介 Activity的简单使用 Activity之间的跳转 意图传递数据 创建Activity获取返回数据 如何调用系统发送短信的页面 如何发送短信 Activity简介 Activity是Android的四大组件之一,它用于展示界面.它提供一个屏幕,用户可以用来交互,可以通过setContentView(View)来显示指定的控件. 在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应.Activit

[iOS基础控件 - 6.11.3] 私人通讯录Demo 控制器的数据传递、存储

A.需求 1.搭建一个“私人通讯录”Demo 2.模拟登陆界面 账号 密码 记住密码开关 自动登陆开关 登陆按钮 3.退出注销 4.增删改查 5.恢复数据(取消修改) B.基本架构 1. 5个控制器 (1)导航控制器 NavigationController (2)登陆 UIViewController 输入账号密码 记住密码.自动登录开关 登陆跳转按钮 (3)联系人列表 TableViewController 注销功能 添加联系人跳转按钮 (4)添加联系人 UIView (5)查看.编辑 UI