使用kivy-ios搭配KivyMD开发时所有图标无法显示问题求助
修复方案
这个问题是KivyMD依赖的Material Icons字体没有被kivy-ios的toolchain正确打包进应用资源包导致的,可按以下步骤修复:
- 第一步:从本地Python环境的KivyMD安装目录下
fonts文件夹中,找到materialdesignicons-webfont.ttf字体文件,复制到你的项目根目录。 - 第二步:在应用入口代码最前添加字体注册逻辑,适配iOS端的资源路径:
from kivy.core.text import LabelBase import os from kivymd import fonts_path # 优先读取打包到应用内的字体文件 app_root = os.path.dirname(__file__) custom_font = os.path.join(app_root, 'materialdesignicons-webfont.ttf') if os.path.exists(custom_font): font_path = custom_font else: # 本地开发环境 fallback font_path = os.path.join(fonts_path, 'materialdesignicons-webfont.ttf') LabelBase.register(name='MaterialIcons', fn_regular=font_path)
- 第三步:执行toolchain打包命令时,手动指定把字体文件打包进应用根目录:
toolchain create --add-data "materialdesignicons-webfont.ttf:." 你的应用名 你的项目路径 - 第四步:确认你的代码中没有修改
MDApp.icon_font_name的默认配置,保持默认值即可。
你当前使用的kivy、sdl2_ttf版本均没有兼容性问题,不需要调整依赖版本,按以上步骤操作后重新打包即可正常显示图标。
内容的提问来源于stack exchange,提问作者Oleksandr K
相关产品推荐
相关产品推荐

