[话题讨论] MATLAB GUI如何文件拖拽读取

[复制链接]
打浦桥程序员 发表于 2019-8-31 13:14:27
在制作GUI过程中会出现一种功能需求,就是读取文件, 比如选取图片文件,测试文件,Excel文件,等等


今天聊一聊3种MATLAB GUI读取文件的方法


1. 输入框


最容易想到的是,在GUI界面做一个输入框,然后把目标文件的路径复制进去,然后无论是通过输入框的callback,还是通过另外的其他按钮,就可以去加载文件路径了




这种方式很容易实现,在GUIDE或者APP中选择edit控件即可,也可以通过uicontrol的方式创建编辑框


uicontrol('Style','Edit')


2. 文件选取框


输入框加载文件的方式,出现的一个问题是,GUI界面不太好看,控件布置的空间需求比较大。


所以,可以考虑第二种方式,文件选取框


创建一个按钮,在按钮的callback中使用uigetfile函数,就可以实现文件选取的功能了。




不过,文件选取框一个非常明显的问题是,当文件非常多的情况下,找文件很费时间。


3. 文件拖拽


平常大家经常能看到一种选取文件的方式是,把文件拖入到软件中,文件就会自动被读取或者打开。


这种方式在MATLAB GUI中也是可以实现的。


不过GUI中自带的控件是没有这种属性的,所以用GUIDE或者APP的形式是没办法实现这个功能,需要用脚本的方式。




Java可以实现文件拖拽监听的功能,而MATLAB GUI是可以调用Java


就很容易想到实现的逻辑,在GUI中调用Java Swing,创建JButton控件,同时在定义文件拖拽监听的功能


在文件拖拽选取之后,可以直接获得文件的路径,甚至可以在这个callback的基础上再进行功能的拓展。


具体的实现方式,直接看源代码吧,公众号后台回复“文件拖拽”获取源代码下载链接。


如果你有兴趣的话,欢迎关注我的微信公众号"打浦桥程序员",谢谢



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

7 条回复


军树龙 发表于 2019-9-10 18:38:28
厉害了

lvatsd 发表于 2019-9-27 15:29:11
你好,打浦桥,想请教一下,如何将simulink的inport和outport直接用matlab读取呢。我的主要目的是想把这些量整理到excel中,一个一个手动复制太慢,才想到用脚本直接读取更快一点。

Q是60955313 发表于 2019-10-13 13:29:43
提示: 作者被禁止或删除 内容自动屏蔽

温故而知昕 发表于 2019-12-7 16:17:02
厉害!很有用

悟得 发表于 2020-6-16 20:51:44
新版的APP Designer是不是禁用了java。好像不得行。

打浦桥程序员 发表于 2020-6-16 21:34:13
悟得 发表于 2020-6-16 20:51
新版的APP Designer是不是禁用了java。好像不得行。

App Designer和GUI的开发原理是不一样的,所以App用不了java,官方文档里有解释

15631202458 发表于 2020-6-22 14:03:00
这个功能厉害了,还是很实用的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表