找回密码
 注册
Simdroid-非首页
查看: 88|回复: 8

GUI如何通过按钮实现多次数据的输入并存储

[复制链接]
发表于 2013-10-4 10:56:07 | 显示全部楼层 |阅读模式 来自 天津
各位高手好:
我现在做一个gui的实例遇到如下问题,希望能够得到指点。

              因为需要用户输入数据,而数据是多次输入的(输入的数据中有些是单独数值,有一部分则是是矩阵。
       由于输入的数据需要显示出来,因此我使用了edit 文本框接受并显示单独的数据,table 控件来接收用户输入的矩阵数值);
              我想实现的功能是每次输入完成后,点击按钮(按钮的 string为 “请输入下一组”),直到用户输入N次完成。
      请问该如何实现所有N次输入数据的保存?(  因为不光是最后一次的数据 有用,前述 N-1次也是后续计算需要用到的,
       因此需要一并保存)     

             我把代码写在了该按钮的Callback中,但是我发现,由于每次输入的数据是针对同一个变量,因此每点一次按钮,
     上次所输入的那组数据就会被新数据覆盖,请问有没有什么办法,可以实现:
        点击该按钮,变量能够在保留上次数据的前提下又添加新输入的数据呢?

以上描述可能过于冗余,还请见谅,不过问题大概就是这个样子,希望各位高手能帮忙看看
感激不尽。
发表于 2013-10-5 20:38:10 | 显示全部楼层 来自 四川
Simdroid开发平台
1、创建一个button,它的功能在于打开目标文件与关闭目标文件。
2、你的“请输入下一组”这个按钮的callback中,只管对第一步button对应的文件指针作连续写数据操作。
3、在完成所有数据的写入后,点击关闭目标文件。
这样,你的文件再次重新打开就是全新的数据了。
另外,还有一种办法,就是你在变量的读入时,同时记录变量的size;等读入下一组时,从size+1开始向同一变量写入数据,这样就可以避免原来的变量存储数据被wipeout的问题了。不过,这种办法对于那种数据量特别巨大的情况,是非常不利的,因为你的数据在存储时不连续,容易导致运行速度变慢

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2013-10-8 10:50:08 | 显示全部楼层 来自 陕西西安
lengyunfeng 发表于 2013-10-5 20:38
1、创建一个button,它的功能在于打开目标文件与关闭目标文件。
2、你的“请输入下一组”这个按钮的callbac ...

对您的”只管对一步进行操作”,我还是有些困惑不解。。。
那我第二次输入数据的话,需要一个消息事件来触发,我还是要点击“请输入下一组”的按钮,
那怎么办?
回复 不支持

使用道具 举报

发表于 2013-10-8 16:38:26 | 显示全部楼层 来自 中国
wangxiaoqi 发表于 2013-10-8 10:50
对您的”只管对一步进行操作”,我还是有些困惑不解。。。
那我第二次输入数据的话,需要一个消息事件来 ...

2楼的意思我的理解是:
在每次需要输入时,先打开一个目标文件(即点击button所实现的打开功能),然后输入你的数据,多行或多列时,可点你的“请输入下一组数据”按钮,不断输入,输入完毕后,(再点击那个button)关闭文件,这样你的数据就在这个文件中了,你的计算可以从该文件中的相应变量去访问。当需要新的输入时,你可以打开相同的文件,写入覆盖即可。当然你也可以每次重新创建一个文件来存你输入的数据

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2013-10-9 16:43:51 | 显示全部楼层 来自 陕西西安
ljelly 发表于 2013-10-8 16:38
2楼的意思我的理解是:
在每次需要输入时,先打开一个目标文件(即点击button所实现的打开功能),然后输 ...

这样通过文件会不会太费事?  我想通过借助另外的控件(比如 edit 控件)来实现,
这样相当于把当初设想通过按钮实现的工作转移(转嫁)到该控件上。

点评

你再看看我的第二种办法,这样可以避开文件写操作。不过它也有缺点,我已经在二楼回复了  发表于 2013-10-10 10:07
那不妨按照2楼提及的另一种方法,把变量都存入一个cell里。  发表于 2013-10-9 18:47
回复 不支持

使用道具 举报

 楼主| 发表于 2013-10-10 11:31:24 | 显示全部楼层 来自 陕西西安
存到cell 里可以实现! 我是把变量定义为global 的cell,由于事先知道总共多少组数据,
因此我可以定义cell 的大小,每次将数据写入指定的cell位置即可。
回复 不支持

使用道具 举报

发表于 2013-10-10 22:17:27 | 显示全部楼层 来自 四川
wangxiaoqi 发表于 2013-10-10 11:31
存到cell 里可以实现! 我是把变量定义为global 的cell,由于事先知道总共多少组数据,
因此我可以定义cell ...

有两问题可能你要注意一下:
第一个是考虑到程序的通用性,建议不要把你cell的size定得太小,定到一般情况下足够大就行了,浪费就浪费点吧;
第二个就是你的cell是定义成global,我觉得没有必要;同时,如果定义成global,在不关闭matlab情况下,当再次调用gui的时候,将会导致前后两次数据的重叠,造成你后面的数据分析出错。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-21 02:20 , Processed in 0.040782 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表