LinuxARM64运行Qt后出现无法显示字库问题的解决方案

  • 问题描述:运行后字体出现问题QFontDatabase: Cannot find font directory
  • 解决前提:
    • 其实就是移植后字体库中是空的,字没办法进行显示本质就是我们只需要通过某种手段将QT界面中的字母所调用的库进行填充即可
    • 此处需要注意的是,必须要看清楚路径,路径必须是字体文件.ttf的上一级目录可以通过whereis fonts找到本机中的fonts存储位置但是请务必确定fonts中哪一个目录才是真正保存.ttf的文件目录,以此目录的位置进行以下配置操作
    • 记录好报错的路径,即QFontDatabase: Cannot find font directory提醒中的路径为了方便,我假设这个路径记录为path1
    • 同时找对真正保存.ttf的文件目录假设路径记录为path2
  • 解决方法:
  • 方法一:
    • sudo vim /etc/profile
    • 在文件的最末尾加入export QT_QPA_FONTDIR=path2
    • 例如在本人例子中我的path2 = /usr/share/fonts/truetype/dejavu
    • 因此我在使用时候添加如下
      export QT_QPA_FONTDIR=/usr/share/fonts/truetype/dejavu
  • 方法二:
    • 在path1中增加fonts文件将path2进行链接
    • 本质就是在Qt库中创建一个fonts库并将.ttf文件进行移植
    • 具体可以参考https://qtway.blogspot.com/2018/08/qt-on-raspberry-qfontdatabase-error.html
  • 解决方案原理:
    • 在Qt实际调用中,其首先会查询QT_QPA_FONTDIR是否存在定义,若存在则直接调用其进行fonts配置,如果不存在,则会在path2即Qt库中直接寻找fonts,这其实也就是报错的原因所在。
    • 总而言之,我们只要配置好确定的库,这一切都可以得到解决。

你可能感兴趣的:(qt,开发语言)