【中文字体问题】QFontDatabase::addApplicationFont是怎么用的?

时间:2022-05-05 06:36:47
为了让Qt显示中文,我已经折腾了一周了。 【中文字体问题】QFontDatabase::addApplicationFont是怎么用的?
在debug里我可以看到中文被正确赋值给了QString,但是显示的是空白,我认为是字体的问题。所以我尝试用QFontDatabase::addApplicationFont设置新的字体,我已经确保.ttf文件的路径正确了,可是这个函数的返回值总是-1,我已经抓狂了 【中文字体问题】QFontDatabase::addApplicationFont是怎么用的?
求大神们指教 【中文字体问题】QFontDatabase::addApplicationFont是怎么用的?

6 个解决方案

#1


一、项目——编辑器——文件编码看一下文件编码是啥??
你代码源文件是UTF_8吗,如果不是则用下面方法或者转成UTF_8。

二、字符串前加tr("中文");
或者QString::fromLocal8Bit("中文");
或者QStringLiteral("中文"));

三、最好还是全写英文,然后通过Qt翻译成中文显示。

#2


引用 1 楼 u013466477 的回复:
一、项目——编辑器——文件编码看一下文件编码是啥??
你代码源文件是UTF_8吗,如果不是则用下面方法或者转成UTF_8。

二、字符串前加tr("中文");
或者QString::fromLocal8Bit("中文");
或者QStringLiteral("中文"));

三、最好还是全写英文,然后通过Qt翻译成中文显示。

我已经转成UTF_8了。。。

#3


引用 2 楼 u013238038 的回复:
Quote: 引用 1 楼 u013466477 的回复:

一、项目——编辑器——文件编码看一下文件编码是啥??
你代码源文件是UTF_8吗,如果不是则用下面方法或者转成UTF_8。

二、字符串前加tr("中文");
或者QString::fromLocal8Bit("中文");
或者QStringLiteral("中文"));

三、最好还是全写英文,然后通过Qt翻译成中文显示。

我已经转成UTF_8了。。。

恩,那你解决了??

#4


引用 3 楼 u013466477 的回复:
Quote: 引用 2 楼 u013238038 的回复:

Quote: 引用 1 楼 u013466477 的回复:

一、项目——编辑器——文件编码看一下文件编码是啥??
你代码源文件是UTF_8吗,如果不是则用下面方法或者转成UTF_8。

二、字符串前加tr("中文");
或者QString::fromLocal8Bit("中文");
或者QStringLiteral("中文"));

三、最好还是全写英文,然后通过Qt翻译成中文显示。

我已经转成UTF_8了。。。

恩,那你解决了??

就是转成UTF_8了,显示的是空白。如果我用setRawMode(true)设置字体,就能显示出来一些奇怪符号

#5


没碰到过,那你试下这两个方法:
二、字符串前加tr("中文");
或者QString::fromLocal8Bit("中文");
或者QStringLiteral("中文"));

三、最好还是全写英文,然后通过Qt翻译成中文显示。

#6


qt5不已经支持中文了么--

#1


一、项目——编辑器——文件编码看一下文件编码是啥??
你代码源文件是UTF_8吗,如果不是则用下面方法或者转成UTF_8。

二、字符串前加tr("中文");
或者QString::fromLocal8Bit("中文");
或者QStringLiteral("中文"));

三、最好还是全写英文,然后通过Qt翻译成中文显示。

#2


引用 1 楼 u013466477 的回复:
一、项目——编辑器——文件编码看一下文件编码是啥??
你代码源文件是UTF_8吗,如果不是则用下面方法或者转成UTF_8。

二、字符串前加tr("中文");
或者QString::fromLocal8Bit("中文");
或者QStringLiteral("中文"));

三、最好还是全写英文,然后通过Qt翻译成中文显示。

我已经转成UTF_8了。。。

#3


引用 2 楼 u013238038 的回复:
Quote: 引用 1 楼 u013466477 的回复:

一、项目——编辑器——文件编码看一下文件编码是啥??
你代码源文件是UTF_8吗,如果不是则用下面方法或者转成UTF_8。

二、字符串前加tr("中文");
或者QString::fromLocal8Bit("中文");
或者QStringLiteral("中文"));

三、最好还是全写英文,然后通过Qt翻译成中文显示。

我已经转成UTF_8了。。。

恩,那你解决了??

#4


引用 3 楼 u013466477 的回复:
Quote: 引用 2 楼 u013238038 的回复:

Quote: 引用 1 楼 u013466477 的回复:

一、项目——编辑器——文件编码看一下文件编码是啥??
你代码源文件是UTF_8吗,如果不是则用下面方法或者转成UTF_8。

二、字符串前加tr("中文");
或者QString::fromLocal8Bit("中文");
或者QStringLiteral("中文"));

三、最好还是全写英文,然后通过Qt翻译成中文显示。

我已经转成UTF_8了。。。

恩,那你解决了??

就是转成UTF_8了,显示的是空白。如果我用setRawMode(true)设置字体,就能显示出来一些奇怪符号

#5


没碰到过,那你试下这两个方法:
二、字符串前加tr("中文");
或者QString::fromLocal8Bit("中文");
或者QStringLiteral("中文"));

三、最好还是全写英文,然后通过Qt翻译成中文显示。

#6


qt5不已经支持中文了么--