Qt经典出错信息之QFontDatabase: Cannot find font directory

本文解决Qt应用程序中因配置不当导致的QFontDatabase错误,通过设置正确的安装路径和使用软链接来修正字体目录缺失的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt经典出错信息之QFontDatabase: Cannot find font directory

原文:http://www.cuteqt.com/blog/?p=86

出错信息类似这样:
QFontDatabase: Cannot find font directory /usr/local/Trolltech/QtEmbedded-4.5.1/lib/fonts - is Qt installed correctly?

这种情况发生的最多的是在交叉编译的时候./configure 命令没有加 -prefix选项,导致默认的安装路径为/usr/local/Trolltech,即使你通过nfs或者拷贝到你嵌入式设备上的某个路径(比如 /foo)时,去寻找的路径还是/usr/local/Trolltech 。

下面作一个演示。我安装的目录是/usr/local/Trolltech目录,现在我把它移动到/usr/local/Grolltech目录下,看看什么效果
$ mv /usr/local/Trolltech /usr/local/Grolltech
$ qvfb &
$ ./wiggly -qws

./wiggly: symbol lookup error:
./wiggly: undefined symbol: _ZN7QWidget8qwsEventEP8QWSEvent
这个错误,可以通过指定QTDIR和LD_LIBRARY_PATH来避免
$ export QTDIR=/usr/local/Grolltech/QtEmbedded-4.5.1
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib

$ ./wiggly -qws
QFontDatabase: Cannot find font directory /usr/local/Trolltech/QtEmbedded-4.5.1/lib/fonts - is Qt installed correctly?
解决方法为作一个软链接到/usr/local/Trolltech
$ ln -s /usr/local/Grolltech/ /usr/local/Trolltech/
在嵌入上也是一样的,类似 ln -s /mnt /usr/local/Trolltech 这样的命令就可以了

"QFontDatabase" has not been declared的错误是因为编译器无法找到QFontDatabase类的声明。这可能是由于以下几个原因引起的: 1. Qt版本不匹配:确保你使用的Qt版本与你的代码中使用的Qt版本一致。如果你的代码使用的是Qt 5.9.9,那么你需要确保你的Qt安装版本是5.9.9。 2. 缺少字体文件:Qt5.9版本之后不再提供字体文件,因此如果你的代码中使用了自定义字体,你需要手动提供字体文件。你可以从其他Windows电脑的C:\Windows\Fonts目录下找到一些ttf文件,并将它们添加到你的项目中。 3. 编译器设置问题:如果你使用的是银河麒麟V10 SP1 2203操作系统和飞腾CPU D2000/8,可能存在编译器设置问题。你可以尝试更新你的编译器或重新设置编译环境。 综上所述,解决这个错误的方法是确保使用的Qt版本与代码一致,提供所需的字体文件,并检查编译器设置。这样应该能够解决"'QFontDatabase' has not been declared"错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [QFontDatabase: Cannot find font directory .../lib/fonts](https://blog.csdn.net/zhouyingge1104/article/details/127832658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值