python - 来自 QFontDatabase 的令人困惑的行为

标签 python qt fonts pyside qtgui

我正在尝试将字体加载到我的应用程序中。从逻辑上讲,我想加载不止一种字体粗细,但这就是问题所在。

我有两个字体文件,“PFD-Black.ttf”和“PFD-Regular.ttf”。我想同时使用它们,所以我使用以下代码加载它们:

fontid_regular = QFontDatabase.addApplicationFont("PFD-Regular.ttf")
fontid_black = QFontDatabase.addApplicationFont("PFD-Black.ttf")

然后我得到姓氏,像这样:

familyname = fontdb.applicationFontFamilies(fontid_black)[0]

请注意,我也尝试过使用 fontid_regular 但无济于事。然后我尝试将字体用于 QLabel:

lab = QLabel("My Font Window")
font = QFont(familyname)
lab.setFont(font)
lab.show()

这就是我的代码的范围,除了样板导入和 QApplication.exec_() 调用。

这行不通(这可能很明显,因为我正在就此提出问题),标签以默认字体显示。

This is when is doesn't work

关于我的问题的莫名其妙的部分是,当我注释掉 fontid_regular = QFontDatabase.addApplicationFont("PFD-Regular.ttf") 行时,粗体字体显示。

This is when it kind of works

这是某种程度的工作(因为缺少更好的词),但我无法使用常规粗细字体。还应注意,注释掉我加载“PFD-Black.ttf”的行并不能解决问题。

请注意,我已经看到了this question ,但无论我对我的代码执行什么突变,我都无法使该解决方案对我有用,因此请不要将此问题标记为该问题的重复。

最佳答案

上面的评论已经解决了问题:原来是我用的字体有问题。

关于python - 来自 QFontDatabase 的令人困惑的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20894160/

相关文章:

java - 如何为 PdfContentByte 设置下划线——iText

python - 统计段落中出现的特殊字符 [^&$#] 的个数

python - 如何在 pyGTK 超时中调用函数?

c++ - 在 MFC 中使用 Qt dll

c++ - Qt 信号槽 : Signal is sent but Slot is not called

android - CSS 引用手机的表情符号字体?

python - 在我正在编写的函数中使用 pandas.read_csv 文档字符串

python - C++ - 读取 16 位 .wav 文件

c++ - 模板类中的 QTimer

c# - 在 winform 中安装和使用特定字体