如何在windows Qt中使用linux字体?
我们在 MS Windows 上为 Linux 开发嵌入式 Qt 应用程序。 目标平台是没有X-windows(framebuffer)的linux。 不幸的是,Windows 上的屏幕看起来与 Linux 上的相同屏幕有很大不同(更好),因为 Windows 具有更好的字体。 有没有办法强制 Windows 上的 Qt 使用 Linux 字体? 我想实现二进制兼容性,即屏幕截图的 CRC 在 Linux 和 Windows 中是相同的。
We develop an embedded Qt application for linux on MS Windows. The target platform is linux without X-windows (framebuffer). Unfortunallety, the screens on windows look rather different (better) than the same screens on linux because windows has better fonts. Is there a way to force Qt on windows to use the linux fonts? I would like to achieve binary compatibility i.e. CRCs of the screenshots will be the same in linux and in windows.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 QFontDatabase::addApplicationFont 从文件或内存中加载字体(QByteArray)。 返回的 id 可用于检索字体系列列表(请参阅 QFontDatabase:: applicationFontFamilies),可以传递给 QFontDatabase::font 创建一个 QFont 对象以在您的应用程序中使用。
仅支持 TrueType 字体。
You can use QFontDatabase::addApplicationFont to load a font from a file or from memory (QByteArray). The returned id can be used to retrieve a list of font families (see QFontDatabase::applicationFontFamilies) that can be passed to QFontDatabase::font to create a QFont object for use in your application.
Only TrueType fonts are supported.
我怀疑这很难做到。 Windows 使用它自己的字体渲染器来绘制字体,因此无论您做什么,提示等都会关闭。 您可以使用相同的字体,但它们看起来仍然不同。 可能略有不同,但仍然不同。
您可以通过使用位图字体来避免这种情况。 不过我不确定。
I suspect this is going to be difficult to do. Windows is using it's own font renderer to draw the fonts, and so the hinting and such is going to be off no matter what you do. You can use the same fonts, but they will still look different. Subtly different, likely, but still different.
It is possible that you can avoid that by using bitmap fonts. I am not sure, though.