我希望将多种语言(英语,希伯来语,泰语,阿拉伯语,中文)作为选择列表, 首先,我使用调试消息来显示支持系列,我不知道这是否是找到支持字体的正确方法,请纠正我,如果这是一个错误的解决方案
/* output the support font */
QFontDatabase qfd ;
qDebug() << qfd.families(QFontDatabase::Hebrew);
qDebug() << qfd.families(QFontDatabase::Arabic);
qDebug() << qfd.families(QFontDatabase::Thai);
qDebug() << qfd.families(QFontDatabase::TraditionalChinese);
获取调试消息后,我正在使用工具“makeqpf”来创建qpf2文件 发现了一些关于插入替换的QFont函数 QFont::insertSubstitution和QFont::insertSubstitutions 我需要加载所有这些来显示正确的单词
其中DejaVu为希伯来语,阿拉伯语和泰国人提供服务
通过这种方式,我可以显示中文,英文,希伯来文,阿拉伯文但不是泰文,
QFont font1("WenQuanYi Micro Hei [prerendered]",14,50,FALSE);
subs << "DejaVu Sans [prerendered]" << "Waree" ;
font1.insertSubstitutions("WenQuanYi Micro Hei [prerendered]", subs);
qApp->setFont(font1);
qDebug() << font1.family() ;
QStringList sl = font1.substitutions() ;
qDebug() << sl.isEmpty() ;
qDebug() << sl ;
qDebug() << font1.substitutes("WenQuanYi Micro Hei [prerendered]") ;
我只是做了另一个测试来改变字体系列
QFont font1("DejaVu Sans [prerendered]",14,50,FALSE);
subs << "WenQuanYi Micro Hei [prerendered]" << "Waree" ;
font1.insertSubstitutions("DejaVu Sans [prerendered]", subs);
qApp->setFont(font1);
如果我首先插入“DejaVu Sans”,当我打开多语言页面时, 程序崩溃了,我想这是因为程序无法显示中文和崩溃,
我也尝试独立阅读“泰语”字体“Waree”,如下所示
QFont font1("Waree",14,50,FALSE);
这样,我可以在我的程序中看到“Thai”字体, 但只有“泰国人”,(希伯来语,阿拉伯语,繁体中文)都是空白的
最终目标是同时显示所有语言 所以我需要加载waree并正确显示,请帮忙 并感谢您的阅读!
任何回复都将不胜感激!!