在不同gui 中传递数据的完美解决方法

刚刚自己遇到一个传递参数的问题,研究了一把,感觉效果还不错,贡献给论坛的兄弟们。

方法一:直接带参数传递,

   用途:用于主窗口打开一个子窗口时传递信息。

例子:主窗口(main) 中点击按钮后打开一个新窗口(ShowSQL)显示当前的sql 语句

 

   主窗口代码(main):

       ShowSQL({sqlstr},{‘SQL Statement‘});

   子窗口代码(ShowSQL):

       function ShowSQL_OpeningFcn(hObject, eventdata, handles, varargin)

       handles.output = hObject;

       handles.str = varargin{1}; % <-- 就是{sqlstr}

       handles.title = varargin{2}; % <--就是{‘SQL Statement‘}

方法二:任意窗口间的参数传递,

   用途:如果子窗口也想回传一些参数给主窗口,或者修改主窗口的一些参数,需要利用hObject 和handles 的传递来达成目标

例子:主窗口(main)打开一个子窗口(config)允许选择当前的使用的数据库连接

   主窗口代码(main):

     主窗口原有的一个handles.conn 保存数据库连接配置。

     希望通过子窗口来设置选择不同的数据库

     function setup_uipushtool_ClickedCallback(hObject, eventdata, handles)

        config(hObject,handles);

   子窗口代码(config):

function config_OpeningFcn(hObject, eventdata, handles, varargin)

    handles.output = hObject;

    handles.obj = varargin{1}; %获得对象指针

    hdl = varargin{2};

    handles.handle = hdl;   %获得句柄列表

    % Update handles structure

    guidata(hObject, handles);

  function uipanel1_SelectionChangeFcn(hObject, eventdata, handles)

    switch get(hObject,‘Tag‘)   % Get Tag of selected object

        case ‘db1_radio‘

     handles.handle.conn = database(‘db1‘,‘‘,‘‘); %修改主窗口的数据库配置参数

case ‘db2_radio‘

handles.handle.conn = database(‘db2‘,‘‘,‘‘);

case ‘db3_radio‘

handles.handle.conn = database(‘db3‘,‘‘,‘‘);  

      otherwise

      end

guidata(handles.obj, handles.handle); %保存修改,很重要,否则修改就不成功了

set(handles.handle.status_text,‘String‘,handles.handle.conn.Instance);

%顺便把主窗口的文本状态框也修改了。

     

时间: 2024-11-03 11:04:27

在不同gui 中传递数据的完美解决方法的相关文章

spring mvc中关于url中传递中文乱码的解决方法

在传值过程中,也是乱码出现的频繁地.先不说到底是什么场景了,通常常用的方案有如下几个 配置指定的filter <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> <filter> <filter-name>springUtf8Encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-

ASP.NET MVC中如何以ajax的方式在View和Action中传递数据

前言:写这篇随笔的时候,在url上漏写了斜线,找了好久错误,整个人都很不好.#我是猪系列 背景:之前介绍过一篇如何构建ASP.NET MVC4&JQuery&AJax&JSon示例,这一篇单独讲解如何在View和Action间传递并处理数据. 1,前台HTML代码: 1 <div> 2 <button type="button" id="btn">从视图向控制器中传递数据</button> 3 <p

5.MVC框架开发(强类型开发,控制器向界面传递数据的几种方法)

界面表单中的表单元素名字和数据库表的字段名相一一映射(需要哪个表的数据就是那个表的模型(Model)) 在View页面中可以指定页面从属于哪个模型 注:以上的关系可以通过MVC的强类型视图开发来解决我们的开发代码的智能感知 1.强类型视图开发的步骤 1)在页面中指定强类型的类型(一定是引用类型),代码:例: @model List<MyMVCBookShop.Models.Book> 2)从控制器传强类型的数据到View视图里,那么就必须保证传入的数据一定和强类型视图中定义的类型相一致,例:

MySQL中删除数据的两种方法

转自:http://blog.csdn.net/apache6/article/details/2778878 在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句. DELETE语句可以通过WHERE对要删除的记录进行选择.而使用TRUNCATE TABLE将删除表中的所有记录.因此,DELETE语句更灵活. 如果要清空表中的所有记录,可以使用下面的两种方法: DELETE FROM table1 TRUNCATE TABLE table1 其

关于iOS去除数组中重复数据的几种方法

关于iOS去除数组中重复数据的几种方法 在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的AllKeys(AllValues)方法 可以将NSArray中的元素存入一个字典,然后利用AllKeys或者AllValues取得字典的所有键或值,这些键或值都是去重的.代码: NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-

token的作用以及ajax中传递token的几种方法

目录 1.ajax中传递token的作用 2.ajax中传递token的几种方法 内容 1.ajax中传递token的作用 作用一:防止表单重复提交 主要原理是:用户提交表单后,会携带token到服务器,服务器将session中的token和用户请求带过来的token进行比较,如果相同,会将session中的token进行更新.若用户重复提交,则用户之后发过来的请求的token和服务器session中的token是不一致的,所以会导致之后的表单提交操作失败. 作用二:防止anti csrf 攻击

head标签中的title,link,meta等的元素错位显示到body里面去了的完美解决方法

问题展现就像上图所示,head中什么都没有,head中的标签全部错位到body中显示,在页面的直观表现就是无故多处一行空白,很多人觉得这是编码者没有写好闭合标签的问题,嗯,是有可能,但不说现在的浏览器大都能自动补全未闭合标签,未写闭合标签也不至于让head中的内容完全移步到body中去吧.... 解决方法: 这个问题其实是由编码格式引起的,没错,就是BOM的问题,选一个比较高级的编辑器,个人推荐Notepad++,打开后选择 格式 选择以无BOM格式编码保存文档,然后就可以了. 嗯,就是这样子,

Android实际开发中的bug总结与解决方法(一)

                                                                             Android实际开发中的bug总结与解决方法(一) Android开发中有很多bug,我们是完全可以在线下避免的,不要等到线上报的BUG的再去修复.下面是我在实际开发中遇到过的bug和解决方法. BUG 1: java.lang.RuntimeException: Unable to start activity ComponentInfo

asp.net url址址中中文汉字参数传递乱码解决方法

中文乱码是网站开发中会常碰到的问题,今天我们来讲一下关于url址址中中文汉字参数传递乱码解决方法,有需要的朋友可以参考下.在cs文件里传参的时候用UrlEncode: Response.Redirect("B.asp教程x?Name="+Server.UrlEncode(Name)); 接参的时候用UrlDecode: Response.Write(Server.UrlDecode(Request.QueryString["Name"])); 脚本儿里传参的时候用e