繁体   English   中英

使用 Python 的 Qt Designer 自定义 ttf 字体

[英]Qt Designer Custom ttf font with Python

这个问题在 Qt 中添加自定义字体和这个链接都提到了通过 C++ 添加字体的能力。 这可以通过 python 和 Qt Designer 框架实现吗? 我尝试将 ttf 添加到资源并编译 qrc 文件。 然后在定义字体的样式表中。

启动应用程序时没有任何反应。 还有什么需要做的吗? 该示例讨论了加载二进制文件。

您还需要将其添加到 QFontDatabase:

首先将字体文件“yourfont”添加到资源编辑器(已经完成),然后添加到字体数据库

QFontDatabase fontDatabase; 
fontDatabase.addApplicationFont(":/fonts/yourfont");

现在您可以在 QLabel 上使用带有 setFont 的字体。

由于在关于 QtDesigner 的答案/评论中没有提及,无论是在此处还是在链接的帖子中,这就是我发现的有关 QtDesigner Standalone (5.6) 的内容 - 关于系统中未安装的字体:

我使用了一种名为AutobusBold.ttf的免费字体。 首先,这个文件的路径需要在你的 qrc 文件中结束,主要是为了 Python - 你可以为此使用资源浏览器/编辑资源(铅笔); 你最终会在 .qrc 文件中得到这样的东西:

<file>myfont/AutobusBold.ttf</file>

如果您在 Windows 上使用fontview.exe打开 .ttf 文件,您将看到其名称为Autobus Bold - 带有一个空格。

然后你需要在QtDesigner中关闭.ui文件,然后在QtDesigner中进入Settings/Additional Fonts...(如果.ui文件是打开的,那么这个选项是灰色的); 单击 +(“添加字体文件”),找到 .ttf 字体文件,然后通过选择它并点击打开来添加它。 从现在开始,只要在 QtDesigner 中打开字体对话框,就会出现这种字体,与系统字体混合。

然后,重新打开 .ui 文件,找到要应用此字体的元素并选择它,在styleSheet选项中单击三个点,然后从出现的对话框窗口中单击添加字体 - 您将看到字体对话框,使用所有系统字体 - 还有自定义字体; 选择它,你会得到一个像这样的 .qss 节: font: 75 8pt "Autobus Bold";

第一个 75 可能是font-weight ,你也可以删除它,它会起作用; 8pt 是font-size ,“Autobus Bold”是font-family 请注意这里font-family中的字体名称被引用,因为它的名称中有一个空格 - 没有引号,一切都会失败!

然后,如果您编写外部 .qss 文件,您可以将font:节重写为单独的font-family (带引号的字体名称!)和font-size节 - 它应该工作相同。

当然,如果您想将所有这些都转移到 Python,那么您还需要按照addApplicationFont的回答中的描述额外添加 ApplicationFont。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM