声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3369|回复: 27

[编程技巧] 交互窗口读写文件的问题

[复制链接]
发表于 2007-6-15 17:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我想问一下:wrx把它最后的数据直接以一个固定的文件名保存了,如果我想建立一个交互窗口,可以随意的把这个文件改个名字改个路径,就像office软件中的另存为……(save as)一样,该怎么做?
回复
分享到:

使用道具 举报

发表于 2007-6-15 23:21 | 显示全部楼层
原帖由 shwwd 于 2007-6-15 17:55 发表
我想问一下:wrx把它最后的数据直接以一个固定的文件名保存了,如果我想建立一个交互窗口,可以随意的把这个文件改个名字改个路径,就像office软件中的另存为……(save as)一样,该怎么做?


help uiputfile

更多的请看这个:[原创]使用文本文件(.txt)进行数据存取的技巧总结
 楼主| 发表于 2007-6-19 17:15 | 显示全部楼层
谢谢!

问个菜鸟问题:(看我的理解是否正确)

uigetfile和uiputfile只是得到文件名和路径而已,如果想要读写文件还需要另外编程。
像uigetfile,还需要fopen编程;uiputfile需要fprintf编程。
我是利用上面的方法实现的,不知是否还有更简便的方法?

GUI中的menu菜单编程有没有好些的文章,自己没有找到。
谢谢!!
发表于 2007-6-19 18:51 | 显示全部楼层
原帖由 shwwd 于 2007-6-19 17:15 发表
谢谢!

问个菜鸟问题:(看我的理解是否正确)

uigetfile和uiputfile只是得到文件名和路径而已,如果想要读写文件还需要另外编程。
像uigetfile,还需要fopen编程;uiputfile需要fprintf编程。
我是利用 ...


请阅读关于 GUI 心得 的精华贴
 楼主| 发表于 2007-6-20 13:51 | 显示全部楼层

关于 GUI 心得

‘关于 GUI 心得’已经读了,不过还是不能实现我想实现的一下功能:

菜单File-New中想另打开一个本GUI程序,callback中该怎样实现?
菜单Help-Help,想打开一个文件(格式可能为.htm .doc .pdf),callback该如何实现?
菜单Help-About this Software,想显示作者和公司的名字以及把公司的Log图片放上去,如何实现?
还有就是,想把编写的GUI程序中最左上角的MATLAB的图标换成我们公司的Log,如何做?
发表于 2007-6-20 15:46 | 显示全部楼层
GUI都还没入门
就想着
把公司的LOGO啊等等放上去
现在的人啦:@L
发表于 2007-6-20 15:56 | 显示全部楼层
原帖由 shunfly 于 2007-6-20 15:46 发表
GUI都还没入门
就想着
把公司的LOGO啊等等放上去
现在的人啦:@L



呵呵,LOGO问题在你的地盘(simwe 论坛)应该有这个介绍,我现在比较忙,晚上吧,看看有否时间找找以前下载过的资料。或者有空的话你贴一下吧

[ 本帖最后由 eight 于 2007-6-20 15:58 编辑 ]
 楼主| 发表于 2007-6-20 16:17 | 显示全部楼层
原帖由 shunfly 于 2007-6-20 15:46 发表
GUI都还没入门
就想着
把公司的LOGO啊等等放上去
现在的人啦:@L


闻道有先后,术业有专攻,如是而已!
对于像这种软件的问题,如果知道了,就觉得很简单,如果不知道,自己摸索,因为在Help中很难有相同的例子就会觉得很难。

大家都是不同的行业,Matlab只是利用专业知识去实现某种目的的手段和工具而已!

[ 本帖最后由 eight 于 2007-6-20 17:13 编辑 ]
发表于 2007-6-20 18:39 | 显示全部楼层
原帖由 shwwd 于 2007-6-20 16:17 发表


闻道有先后,术业有专攻,如是而已!
对于像这种软件的问题,如果知道了,就觉得很简单,如果不知道,自己摸索,因为在Help中很难有相同的例子就会觉得很难。

大家都是不同的行业,Matlab只是利用专业知 ...


别动怒,shunfly 也是为你好而已,matlab 要学好也绝非易事,还是掌握一定的基础为好
发表于 2007-6-20 19:14 | 显示全部楼层
原帖由 shwwd 于 2007-6-20 13:51 发表
‘关于 GUI 心得’已经读了,不过还是不能实现我想实现的一下功能:

菜单File-New中想另打开一个本GUI程序,callback中该怎样实现?
菜单Help-Help,想打开一个文件(格式可能为.htm .doc .pdf),callbac ...


四个问题的解答:
1. help eval

2. help winopen

3. 参考以下代码:

  1.     'CallBack','[x, maps] = imread(''logo.bmp'');msgbox({''Version 1.0'';''  '';''December 16, 2006'';''  '';''Copyright 2006''},''About ABC'',''custom'', x, maps,''modal'')'
复制代码
4. 使用以下函数:(注:请勿用作商业用途,否则 matlab 有权举报侵权。特别留意函数的帮助信息部分)

  1. function changeicon(h,filename)
  2. %CHGICON changes the figure icon.
  3. %   CHGICON(H,FILENAME) changes the icon of a figure to an image specified by
  4. %   the string FILENAME, where H is a handle to the figure. If the file is not
  5. %   in the current directory or in a directory in the MATLAB path,specify the
  6. %   full pathname of the location on your system. If FILENAME is not a valid
  7. %   image file name, the function just removes the previous icon of the figure.
  8. %
  9. %  Example:
  10. %         h = figure;         
  11. %         chgicon(h,'newIcon.png'); % replace 'newIcon.png' with your image
  12. %
  13. % IMPORTANT NOTES:
  14. %      REPLACING THE MATLAB GUI ICON VIOLATES THE LICENSE AGREEMENT
  15. % OF MATLAB. DO NOT USE THIS FUNCTION COMMERCIALLY.
  16. %
  17. %   Han Qun, Sept. 2005
  18. %   Copyright 2005-2006 Han Qun
  19. %   College of Precision Instrument and Opto-Electronics Engineering,
  20. %   Tianjin University, 300072, P.R.China.
  21. %   Email: junziyang@126.com
  22. %   $Revision: 1.0 $  $Date: 2005/12/2 $
  23. if nargin<2
  24.     error('MATLAB:chgicon','%s','Too few input arguments!');
  25. end
  26. if nargin >2
  27.     error('MATLAB:chgicon','%s','Too many input arguments!');
  28. end
  29. newIcon = javax.swing.ImageIcon(filename);
  30. javaFrame = get(h,'JavaFrame');
  31. javaFrame.setFigureIcon(newIcon);
复制代码

评分

1

查看全部评分

 楼主| 发表于 2007-6-21 12:44 | 显示全部楼层

To eight

非常感谢!!!
问题2和3已经做好,1和4还在试。
 楼主| 发表于 2007-6-21 18:21 | 显示全部楼层
1和4还是不太会做,4不想做了,1我变成open了,利用了2中的winopen。
软件基本完成了,下一步写安装手册和操作手册,然后程序打包,想做成独立软件。
在这里特别感谢eight,等有机会把我做的东西跟大家分享一下,是关于汽车发动机进气系统消音优化分析和模拟计算方面的。
发表于 2007-6-21 19:57 | 显示全部楼层
原帖由 shwwd 于 2007-6-21 18:21 发表
1和4还是不太会做,4不想做了,1我变成open了,利用了2中的winopen。
软件基本完成了,下一步写安装手册和操作手册,然后程序打包,想做成独立软件。
在这里特别感谢eight,等有机会把我做的东西跟大家分享一 ...


1. 假设被调用的GUI是 fig 方式的,并假设文件名为 abc.m 和 abc.fig,且与调用的 GUI 在同一目录下,则: eval('abc'); 就可以了
4. %  Example:
%         h = figure;         
%         chgicon(h,'newIcon.png'); % replace 'newIcon.png' with your image
 楼主| 发表于 2007-6-22 11:53 | 显示全部楼层
原帖由 eight 于 2007-6-21 19:57 发表


1. 假设被调用的GUI是 fig 方式的,并假设文件名为 abc.m 和 abc.fig,且与调用的 GUI 在同一目录下,则: eval('abc'); 就可以了
4. %  Example:
%         h = figure;         
%         chgicon(h, ...


h = figure;         
chgicon(h,'newIcon.png');可以将新打开的figure的图标换成'newIcon.png'的图标,试过了,没问题,多谢!!
但我在GUI的程序中,例如 example.fig和 example.m的GUI程序,我将chgicon(example,'newIcon.png')放在function varargout = example(varargin)的后面老出错,放在程序的最后,Run的结果就是出来了很多个GUI,最后有个出错信息,图标倒是变过来了。
这是怎么回事啊?
 楼主| 发表于 2007-6-22 15:39 | 显示全部楼层
在matlab的命令窗口中直接键入eval('abc'),没什么问题的,就是在GUI程序内部就不行了。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-16 06:12 , Processed in 0.063810 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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