MATLAB 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | function setLogo(fig, iconPath) % 更改 UI 界面的 Logo : % setLogo(fig, iconPath) % fig 为窗口句柄 % iconPath 为图标存放的路径,类型为 '*.png', '*.jpg', ‘.ico’等 % 参数合法性判断 if ~isvalid(fig), return; end if ~exist(iconPath, "file"), return; end % 暂时关闭警告 stuWarn = warning; warning('off'); % 设置 frame = get(fig, "JavaFrame"); if ~isempty(frame) % JFrame 绘制 set(frame,'FigureIcon',javax.swing.ImageIcon(iconPath)); else % Chromium 绘制 % 最长等待加载时间 3s limit = 3; rez = char(); while ~isequal(rez, iconPath) && limit>0 try % 获取webwindow句柄 win = struct(struct(struct(fig).Controller).PlatformHost).CEF; win.Icon=iconPath; rez = win.Icon; catch % 给图形(网页)更多时间加载 limit = limit - 1; pause(1); end end end % 恢复设置 warning(stuWarn); end |
注释
如下图所示,通过MATLAB制作的界面中,通常默认包含MATLAB的图标:
很多时候不可避免地要修改左上角的 Logo 图标。
一般绘制图像常用的是
figure 通过 Java 语言实现,基于Java Swing中的JFrame类进行绘制,因此可以使用get() 方法获取figure 的JavaFrame相关句柄;uifigure 通过 JavaScript 语言实现,基于DOJO和内嵌Chromium实现,所以可以使用CEF接口进行操作。
遇到的问题
uifigure 需要使用的
参考链接
MATLAB App Designer教程连载6: App Designer的局限性
matlab如何修改GUI的图标 左上角的logo
Matlab App Designer 中如何将左上角matlab图标更改为自己的logo?