showtext matlab,使用MATLAB 2019 App Design 工具设计一个 电子日记App

使用MATLAB 2019 App Design 工具设计一个 电子日记App

1.1 前言:由于信号与系统课程需要,因此下载了MATLAB软件,加之对新款的执着追求,通过一些渠道,下载了MATLAB 2019专业版。在使用过程中我发现该软件居然内含一款app设计工具,回想起之前使用Java swing编写用户交互时按照坐标确定模块位置时的苦涩,该工具的拖拉式布局极大的吸引了我,而且添加了回调函数功能,这一低门槛让许多不懂得编程的同学也有了编写个性化程序的可能,于是本着“君子动手不动口的原则”,在一个闲暇时间萌生了设计一款个性化APP的想法。

1.2 app设计:作为一名大三考研党,每天的工作学习繁琐的杂事数不胜数,加之小时候又没有培养写日记的习惯,经过我的”深思熟虑“,决定做一款可以记录每天生活状态,学习情况以及备忘功能的App,该App主要包含以下功能,(1)可以记录每天学习情况,重要事件,并按当天日期作为文件名的文本保存在App目录下。(2) 可以根据需要显示想要查询日期的学习情况与重要事件。(3)可以便捷打开一下特定的网页比如百度,博客等。

1.3 软件准备工作:

MATLAB 2019 资源

提取码:9bh8

2.1 App界面设计:由于App design采用了非常人性化的拖拽界面,故实现起来很容易,就像画图一样,拖拽模块到画布上即可,下面展示一下我设计的界面:

3f3cf54efdc85940b5e86633c5bdc138.png

2.2 后端代码逻辑设计:相比于前面的画图,这一部分就显得有点复杂,由于我的版本是2019版,与网上大多数的版本不一致,而语法也有较大的区别。

(1)首先应该添加回调函数,具体操作方法为,右键想要设计的模块,选择回调,转至***回调,这样就会自动在代码视图里面生成一个回调函数,并且设置一个变量作为初值。如图:

e6c2420a4a1c924b32533cf6d5bd22f4.png

3535449492ca2d299995921085e5e17e.png

由于我之前设计好了后端代码,所以可能你创建之后函数的空的,只有一条赋值语句,类似这样:

function TextArea_2ValueChanged(app, event)

app.vvl=app.TextArea_2.Value;

end

如果按照我设计的App,则需要以下几个模块回调,首先是两个文本区,一个作为每日情况的记录,另一个作为每日情况的查询与显示,还需要一个日期显示器,两个按钮作为跳转,四个按钮分别超链接四个常用网站,以及三个文本选择框,下面我来一一讲解这些模块的参数值传递。

(1)文本区模块:函数传参为app,event。具体使用方法为,若想要获取文本区内的值,则在函数内输入

value=event.value;

这里要主要value只能在函数内调用,如想要传参给别的函数,如想要多个文本区显示文字时,则需要为value添加私有变量。

选择value,按左上角添加变量,在跳出的函数中添加value即可,这时可将回调函数改为

app.value=event.value;

app.value即为用户在文本区输入的值,该值以cell形式存储。

(2)文本选择模块

% Selection changed function: ButtonGroup

function ButtonGroupSelectionChanged(app, event)

app.selectedButton1=app.ButtonGroup.SelectedObject.Text;

end

函数参数为app,event,若想要获取选择框选择的值,则

app.selectedButton1=app.ButtonGroup.SelectedObject.Text;

app.selectButton1 为字符串类型

(3)日期选择器

% Value changed function: DatePicker

function DatePickerValueChanged(app, event)

app.d = app.DatePicker.Value;

app.DateString = datestr(app.d);

end

app.DatePicker.Value值为cell数组类型,如果想要在文本区显示则需要强制转换为字符串类型

app.DateString = datestr(app.d);

(4)超链接跳转

% Button pushed function: Button_12

function Button_12Pushed(app, event)

url = 'https://www.baidu.com';

web(url,'-browser')

end

可将网址改成自己想要的访问的网站

(5)两个跳转按钮:查询与提交

当按下提交按钮时,需要将文本区的文字,以及选择框中选择的文本共同写入到以日期选择框选择时间命名的txt文本文件中,如果没有则创建一个,该文件位置在App的目录下。例如:时间选择器时间为2020年9月28号,则按下提交按钮时,会将文本区的文字以及选择的内容共同写入28-Sep-2020.txt文件中,并存储。

955d7449fc423df5113e1d7f1a6d5abe.png

71984b17a87b4ffb8a3cb29c6935c8fd.png

代码实现:

% Button pushed function: Button_11

function Button_11Pushed(app, event)

abc='.txt';

stre=strcat(app.DateString,abc);

lla=char(app.vvl{1});

fid=fopen(stre,'a+');

fprintf(fid,'%s',lla);

fprintf(fid,'\n%s',"是否开心: ");

fprintf(fid,'%s\n',app.selectedButton1);

fprintf(fid,'%s',"是否焦虑: ");

fprintf(fid,'%s\n',app.selectedButton2);

fprintf(fid,'%s',"学习情况: ");

fprintf(fid,'%s\n',app.selectedButton3);

msgbox('提交成功','提示','help');

end

当按下查询按钮时,App会自动在目录内寻找以当前时间选择器中时间为名字命名的txt文件,并显示在文本区中

64f604affc077666a36e5809d244077f.png

而且不会覆盖之前的结果。

代码实现:

% Button pushed function: Button_2

function Button_2Pushed(app, event)

abc1='.txt';

stre=strcat(app.DateString,abc1);

filename = stre;

A = importdata(filename);

app.TextArea.Value=A;

end

其余的模块纯属摆设,无任何实际作用!

3.1 程序打包成exe文件

程序写好了,追求完美的我肯定不会轻易放过全平台普及的机会,正好App design也提供了这样的功能,点击左上角设计器-》共享-》独立桌面App

badc26909710da27b1276c5aeb737f2d.png

在里面填入一些必须的信息,另外上传一张好看的图片,点击Package即可,稍等片刻你的文件就成功变成exe了。

值得注意的是,想要运行该exe程序必须要求系统内按照MATLAB运行环境,如果没有安装则不能运行

3.2 总结:至此一个小小想法就全部完成了,虽然简单,但还是一套具备一定功能的程序,最重要的是,它将我带进了MATLAB的巨坑里,挣扎着又享受着……

完~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值