【MATLAB APPdesigner ui设计实现软件动态页面启动 】(启动无标题栏)

MATLAB APPdesigner实现软件动态页面启动 (启动无标题栏)

前言

最近需要验收利用MATLAB所实现的控制系统,为了更好的展示,因此想要做一个简单的ui界面。因为之前没有用过MATLAB做ui界面,打算用guide设计,进行学习的时候发现MATLAB在2016年就推出了appdesigner,因此本文使用appdesigner实现。ui界面必要容易实现,本文着重强调软件动态页面的启动,想要实现如word那样的启动画面。之前是想要读取gif动图在ui界面里,偶然间看到了网上有人询问如何在启动界面里实现gif动图的播放。我想我也可以尝试一下。

实现

实现动态界面启动

首先我另外创建了一个app界面,用于充当启动界面,通过另一个主体的app调用即可,采用如下命令即可调用。
run app
该启动界面包含两个内容,分别是app.Label和app.UIAxes。前者用于填充软件名字,后者是坐标区域,用于播放gif动图。播放gif动图我不希望还有坐标轴的存在,因此将UIAxes的Visable属性勾选为off,那么就有动图播放而没有标题、坐标轴等。实现的效果如下:

app.UIFigure.Visible="off";

在这里插入图片描述
等动图播放完成后,关闭这个app界面,并调出另一个主体界面即可。然而上图的标题栏,让人很不舒服,感觉不像是软件的启动界面。因此想要隐藏该标题栏。

隐藏动态界面启动的标题栏

  1. 如何隐藏标题栏?在查阅了MATLAB的官方文档之后,我发现MATLAB并没有提供相关的函数或者属性来隐藏标题栏。同时在网上搜索之后也是没有相应的简单方法,但是在网上找到了一篇关于隐藏标题栏的博客专栏
    上述两篇文章都提到,MATLAB没有暴露过多的JFrame组件,因为我没有学过Java所以不大明白,就不叙述了。此外文章中还提到Figure与uiFigure的区别,后续也非常重要。
    在上述专栏中,好心的博主提供了无边框标题栏的源代码,该源代码是一个demo,用于显示标题栏和隐藏标题栏。其中的语句我也看不懂,通过MALAB单步调试理解了逻辑,因此将我需要的那部分抽了出来,准备实现。
  2. 然而博主用的figure,我在ui设计中用的是UIFigure,在运行过程中提示无法获取底层的Java Frame组件。我想着对源代码进行修改,并在网上找到了相应的函数,无奈失败。此外我了解到MATLAB的figure使用的java组件绘制,而最新的appdesigner中使用的是基于html的webview,本质上运行了一个CEF框架。当然我也不明白,只知道二者底层不一样。
  3. 因此我没法使用UIFigure来进行绘制启动界面,因此我选择了用figure。在我的主体app中直接使用figure绘制启动画面,并且将其放在窗口的StartupFcn回调函数中去。这次调用上面抽出来的函数成功了,效果如下:
    在这里插入图片描述
    是不是有点像word的味道了?
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值