MATLAB App Designer软件登录界面(一) 您所在的位置:网站首页 app密码怎么设 MATLAB App Designer软件登录界面(一)

MATLAB App Designer软件登录界面(一)

2024-06-29 05:53| 来源: 网络整理| 查看: 265

1. App功能

展示视频:

app演示1

App界面如下图所示,主要实现功能:

(1)登录跳转;

(2)账号、密码输入框点击后隐藏“账号”和“密码”字样;

(3)密码框输入显示*号(隐藏密码);

(4)账号维护(注册、修改密码等);

 

2. 设计步骤 2.1 登录跳转功能

(1)添加app启动运行回调函数(startupFcn),目的是app启动时,立马读取注册信息文件(CustmInf.mat),若存在该文件则加载,不存在则新建该文件数据库(相当app第一次运行,并未进行任何账号的注册)。

if exist('CustmInf.mat', 'file')==2 CustmInf=load("CustmInf.mat"); else pathname= pwd; filename="\CustmInf"; file=strcat(pathname,filename); CustmInf=["账号","密码","密保","密保答案"]; save(file,"CustmInf"); CustmInf=load("CustmInf.mat"); end app.custmoer_Infor=CustmInf.CustmInf; % 所有的注册信息(账号、密码...)

(2) 登录软件,将加载的账号和密码与输入的账号和密码进行对比,一致则进行软件跳转;若不存在当前输入账号/认证不一致则弹窗提示。(这部分没什么难点,主要是输入框隐藏功能、*号显示、数据库维护功能)

% 数据库中ID及对应的密码 CUS_ID=app.custmoer_Infor(:,1); CUS_PAS=app.custmoer_Infor(:,2); % 读取到输入的ID和密码 custmoID=app.id.Value; custmopas=app.password; % 空输入判断 if custmoID=="账号" msgbox("请输入账号!","提示","warn"); elseif isempty(custmopas) msgbox("请输入密码!","提示","warn"); else % 查找注册表中是否存在此账号信息,并输出所在行 [m,~]=find(CUS_ID==custmoID); if isempty(m) msgbox("账号不存在!","提示","warn"); else if custmoID==CUS_ID(m) && custmopas==CUS_PAS(m) % 此处为认证通过后需要跳转的页面app; msgbox("账号或密码镇正确!","提示","help"); % 跳转之后立马关闭当前登录界面; close(app.CARDesignerUIFigure); else msgbox("账号或密码错误!","错误提示","error"); end end end 2.2 输入框点击隐藏字样

 

 (1)点击输入框隐藏字样,思路是获取密码框的位置坐标,当鼠标处于输入框坐标范围内,则对密码框进行赋空值处理即可实现。

首先用get函数,获取鼠标当前的位置;以及账号输入框的坐标位置

% 获取鼠标当前所在位置坐标 mouseCurPoint=get(app.CARDesignerUIFigure,'currentpoint'); ID_position=app.id.Position; % 账号编辑框的位置坐标 password_position=app.pas.Position; % 密码编辑框的位置坐标

 (2)然后分别计算出账号框四个顶点的坐标位置

% 账号框四个角位置坐标 ID_position_x1=ID_position(1); ID_position_x2=ID_position(1)+ID_position(3); ID_position_y1=ID_position(2); ID_position_y2=ID_position(2)+ID_position(4);

(3)根据鼠标当前的位置处于账号框四个顶点的坐标位置范围内时,将默认“账号”置空;当鼠标位置离开账号框范围内时,如果为空,则显示“账号”。

if mouseCurPoint(1)>=ID_position_x1 && mouseCurPoint(1)=ID_position_y1 && mouseCurPoint(2)1时(例如x个),循环并构造含有x个*号的s数组,并赋值给密码框。

if size(changingValue,2)>1 s='*'; for i=2:size(changingValue,2) s=[s,'*']; end app.pas.Value=s; elseif size(changingValue,2)==1 app.pas.Value='*'; end

未完待续...



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有