如何在windows Qt中使用linux字体?

发布于 2024-07-13 13:08:31 字数 232 浏览 8 评论 0原文

我们在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剪不断理还乱 2024-07-20 13:08:31

您可以使用 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.

浅忆流年 2024-07-20 13:08:31

我怀疑这很难做到。 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文