本人今年大二,人工智能专业,学习数字图像处理,期末做了个大作业,涉及到matlab的GUI,看到网上也没有什么关于这方面的资料,遂发此文,供路过的小白大神参考。
因为其中函数的定义都能百度到,所以代码讲解较少,有疑惑的地方请私信。
登陆界面大概就做成这个样子吧,没学过前端,对界面美观性没什么理解。
一、登录按钮,callback,在此代码段中敲下以下代码:
accnum=get(handles.accnum,'string');
root=get(handles.root,'string');
fid=fopen('land.txt','r'); %打开文件
line=fgetl(fid); %获取文件中的一行
while ischar(line) %如果这一行中有字符
s=regexp(line,' ','split'); %将这一行以空格为界拆分成数组
a=cell2mat(s(1));
b=cell2mat(s(2));
if strcmp(a,accnum) == 0 && strcmp(b,root)==0 %如果账号和密码都对
close(untitled); %关闭界面,登录界面的文件名,不加后缀名
clc;clear;close all;
set(main,'Visible','on'); %打开界面,主界面的文件名,不加后缀名
break %跳出循环
end
line=fgetl(fid); %获取下一行
end
handles.accnum和handles.root中handles后面的两个名字是自定义的 可编辑文本框的tag名:双击账号位置的可编辑文本框打开检查器
倒数第六个,Tag是在代码里调用的变量名。
这里用到了一个文本文件用来存放用户的登录数据。
以【账号 密码 】格式存储。
二、注册按钮,callback,敲下以下代码:
扫描二维码关注公众号,回复:
15317211 查看本文章
close(untitled);
clc;clear;close all;
set(U,'Visible','on');
第一行的意思是关闭名为untitled的窗口,注意不要加后缀。第三行中的U是你要打开的窗口名,同样不加后缀。(注意将uititled和U替换成自己的文件名)
注册界面我做成了这个亚子:
确定按钮,callback,敲下以下代码:
accnum=get(handles.edit1,'string');
root=get(handles.edit2,'string');
fid=fopen('land.txt','a+'); %以追加的方式打开文件
fprintf(fid,'%s ',accnum); %将账号和一个空格符写入文件
fprintf(fid,'%s\n',root);%将密码写入文件
h=dialog('name','关于...','position',[500 500 200 70]);%定义提示框
uicontrol('parent',h,'style','text','string','注册成功!','position',[50 40 120 20],'fontsize',12);
uicontrol('parent',h,'style','pushbutton','position',...
[80 10 50 20],'string','确定','callback','delete(gcbf)');
返回按钮,callback:
close(U);
clc;clear;close all;
set(untitled,'Visible','on');
同理,关闭名为U的界面,打开名为untitled的界面。
三、总结
matlab的代码就是C和Python的缝合体,只要你有编程能力就没有实现不了的功能。