You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab App中Google Material Icons无法显示问题排查

问题分析与解决方案

核心结论

这不是你的代码问题,而是Matlab App Designer的HTML组件对在线字体/图标库的加载存在限制,属于Matlab组件的特性限制,而非代码错误。

解决方案

1. 本地引入Material Icons字体文件

  • 下载Google Material Icons字体包,提取出MaterialIcons-Regular.ttf等核心字体文件
  • 将字体文件放到你的Matlab App项目目录下(和.mlapp文件同文件夹)
  • 修改HTML中的字体引入代码,替换在线链接为本地相对路径:
    @font-face {
      font-family: 'Material Icons';
      font-style: normal;
      font-weight: 400;
      src: url('MaterialIcons-Regular.ttf') format('truetype');
    }
    
  • 确保Matlab能访问该路径:可以在App Designer的回调函数中用pwd确认当前工作目录,或者通过addpath将字体文件所在文件夹添加到Matlab路径。

2. 直接使用SVG内联图标

如果不想处理字体文件,可直接将Material Icons对应的SVG代码嵌入HTML中,完全避免字体依赖:
比如删除图标可以替换为:

<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
  <path d="M0 0h24v24H0z" fill="none"/>
  <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/>
</svg>

你可以在Material Icons官网找到每个图标对应的SVG代码,直接复制使用。

3. 验证本地资源访问权限

检查Matlab的Web设置,确保允许加载本地资源:
在Matlab命令行输入:

weboptions

查看LocalFileReadPermission参数,若为'off',可修改为'on':

opts = weboptions('LocalFileReadPermission','on');

原因说明

Matlab App Designer的HTML组件基于Chromium,但带有Matlab自定义的安全沙箱机制,在线字体资源的加载会被拦截,而本地资源则不受此限制。这是Matlab为了避免外部资源风险设计的特性,并非代码兼容性问题。

内容的提问来源于stack exchange,提问作者Ferro Luca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:58:14