图片缩略图

SplashScreen

版本1.1.0.1 (146 KB) 本Tordoff
在MATLAB应用程序启动期间显示一个启动屏幕。
4.6
18评级

9下载

更新2016年9月01日

视图版本历史

查看许可协议

这个类提供了一个启动屏幕,你可以在MATLAB应用程序启动时显示它:
* Border-less窗口
*添加文字覆盖的能力
*可选的进度条,可配置位置

这在使用MATLAB编译器部署应用程序和应用程序需要一段时间初始化时非常有用。

要求MATLAB R2010a或以上。

引用作为

本Tordoff(2021)。SplashScreen(//www.tatmou.com/matlabcentral/fileexchange/30508-splashscreen), MATLAB中央文件交换。检索

意见及评分(28

雅罗西克Hajek

很好的工具。然而,在已编译的可执行文件中,这个splash只在执行startupFcn的最后时刻打开,也就是在可执行文件上按下Enter之后很久。为了解决这个问题,我使用了与编译器关联的splash相同的图像(必须是与可执行文件在同一个文件夹中的splash.png),这让我在启动可执行文件后立即获得一个主要的splash。不幸的是,这两个启动画面之间存在相当大的时间间隔。有人知道如何覆盖整个启动周期吗?

Ciccio邦戈

不好意思,请问如何插入我的原始代码?非常感谢。

锋周

通过P

弗雷德里克·Gustavsson

伟大的提交。下面Guy关于窗口堆叠的评论,你可以通过添加:

obj.Frame.setAlwaysOnTop(真正的)

在盖伊提供的代码行之后。

???使用==> SplashScreen时出错。SplashScreen 56岁
语法错误。您必须同时提供窗口标题和imagename。

我该怎么补救呢?

家伙Championnet

完美,但如果用作进度条,该窗口可能不会出现在其他窗口的顶部,以处理:

在第250行之后添加:
obj.Frame.toFront ();
obj.Frame.requestFocus ();

在第311行之后添加:
obj.Frame.toFront ();
obj.Frame.requestFocus ();

LITO Plzen

大卫

小君,

在第244行,您可以修改代码以容纳第二个监视器。喜欢的东西:

%旧代码从这里开始:
%调整窗口大小和位置
obj.Frame。setSize(obj.Icon.getIconWidth(), obj.Icon.getIconHeight());
% pos = get(0,'MonitorPositions');
% x0 = pos (1,1) + (pos(1、3)-obj.Icon.getIconWidth ()) / 2
% y0 = pos(1、2)+ (pos(1、4)-obj.Icon.getIconHeight ()) / 2

%新代码从这里开始:
拉=(0,'拉');
w = obj.Frame.getWidth ();
h = obj.Frame.getHeight ();
拉x0 =装天花板(((3)- w) / 2);
拉y0 =装天花板(((4)- h) / 2);

obj.Frame。setLocation(x0, y0);

首歌

完美! !我喜欢!!!!

本Tordoff

目前还没有一种方法可以通过程序设置职位。我想我可以让它安定下来。但是,它应该选择第一个监视器并将窗口置于中心位置。你能发布get(0,'MonitorPositions')的输出吗?

小君郭

你好,本,非常感谢你给我这个文件。

我有一个问题显示闪屏,因为我有两个显示器设置为“扩展”显示。一旦闪屏运行,屏幕就会显示在两个显示器的“中间”,也就是说,闪屏的一半在显示器A中,另一半在显示器B中。

是否有任何设置来定位闪屏在显示器上?

保罗。费雷拉

Shivaputra Narke

如果我使用GUIDE来生成GUI,我应该调用哪里
s = SplashScreen(…);
什么时候打电话
删除(s);

Shivaputra Narke

本Tordoff

好吧,这有点令人惊讶。也许你可以在打开后再画一个“drawnow”?

您是对的,在加载/初始化MCR之前,什么都不会显示。解决这个问题的唯一方法是在启动MATLAB部署的应用程序之前,编写一个可执行文件的包装器来显示闪屏。显然,这必须用MATLAB以外的其他东西来编写(这需要MCR!)

薛大海

嗨,本,
我正在尝试使用这个编译程序,并希望这将显示后不久的程序图标被点击。一般来说,在屏幕上发生任何事情都需要一段时间,可能是因为必须加载MCR。在我的例子中,程序还会查找从上一个会话中保存的文件I/O路径。当我在_OpeningFcn()中调用它时,它直到等待时间接近结束时才出现。想知道是否有解决办法?
谢谢你!

本Tordoff

嗨,独木舟通勤者(顺便说一下,这个名字很棒——比开车要好!),让启动画面停留一到两秒钟的简单方法是使用“pause(1)”。(1秒钟)或类似的。然而,这将阻塞,不允许任何其他事情发生,这可能会令人恼火。

一个稍微复杂一点的方法是确保它能保持N秒。在伪代码中,这看起来像:

showSplashForSecs = 2;

showSplashscreen;
计时器=抽搐;
initializeApplication;
elapsedTime = toc(计时器);
if elapsedTime < showSplashForSecs
暂停(showSplashForSecs - elapsedTime);
结束
deleteSplashscreen;

这应该能确保即使你的应用程序初始化得非常快,闪屏也会一直亮着至少两秒钟。虽然暂停了,但它仍然会阻止交互。

独木舟通勤

伟大的文件!谢谢分享!

问题:我的应用程序加载非常快,没有机会读取启动画面。我怎样才能让屏幕在有限的时间内保持不动?

对于那些(像我一样)没有经验的程序员:通过反复试验,我发现您将调用代码插入到名为OpeningFcn的GUI函数中。

薛大海

很好。快速提问:如果我使用GUIDE来生成GUI,我应该调用哪里
s = SplashScreen(…);
什么时候打电话
删除(s);

本Tordoff

嗨,Andre,你必须用窗口的名称(即标题)和你想要显示的图像文件的名称来调用它。例如:"s = SplashScreen('My App','myAppImage.png')"。输入“help SplashScreen”获取更多信息。如果还是没用,就告诉我。

安德烈全面接触式

我有一个错误:

“语法错误。必须同时提供窗口标题和imagename。

我该怎么办?

Sim卡

不错的添加,谢谢!

我在我的独立应用程序中有一个问题:应用程序在执行'delete(s)'命令时挂起(崩溃前启动屏幕消失)。你知道为什么吗?

我的解决方法是隐藏启动画面:

集(年代,“可见”,“关闭”)

朱利安·弗朗西斯科

克利斯朵夫Tilman

克利斯朵夫Tilman

很好。
关于人物位置只有一句话。
在我的计算机上,root 'MonitorPositions'返回[左,底,右,上]为每个显示器而不是[左,底,宽,高]在matlab文档中描述。

所以,我必须将第247行和第248行替换为:
x0 = pos (1,1) + (diff (pos (1, 3 [1])) -obj.Icon.getIconWidth ()) / 2
y0 = pos(1、2)+ (diff (pos (1, 2 [4])) -obj.Icon.getIconHeight ()) / 2

请注意,如果您只使用一个监视器,或者主监视器位于辅助监视器的左侧,那么这就不是问题。

本Tordoff

你好,Dani,一个允许关闭文本阴影的更新正在进行中。我不认为我使用的Java工具允许查看gif动画,所以我不认为这可以以任何简单的方式支持。金宝app

欢呼。本

达尼

真的,真的很好,我希望我能早点拿到。

两个问题:

1.为什么我不能加载动画gif ?这将允许更动态的启动画面。

2.如果可以控制(关闭)文本阴影,也就是100-110行,那就太好了。

MATLAB版本兼容性
创建R2010a
与任何版本兼容
平台的兼容性
窗户 macOS Linux
标签添加标签
gui
确认

启发:BacStalkBiofilmQ

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!

SplashScreen-v1p1 /