我正在尝试将字体加载到我的应用程序中。从逻辑上讲,我想加载不止一种字体粗细,但这就是问题所在。
我有两个字体文件,“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_() 调用。
这行不通(这可能很明显,因为我正在就此提出问题),标签以默认字体显示。
关于我的问题的莫名其妙的部分是,当我注释掉 fontid_regular = QFontDatabase.addApplicationFont("PFD-Regular.ttf")
行时,粗体字体显示。
这是某种程度的工作(因为缺少更好的词),但我无法使用常规粗细字体。还应注意,注释掉我加载“PFD-Black.ttf”的行并不能解决问题。
请注意,我已经看到了this question ,但无论我对我的代码执行什么突变,我都无法使该解决方案对我有用,因此请不要将此问题标记为该问题的重复。
最佳答案
上面的评论已经解决了问题:原来是我用的字体有问题。
关于python - 来自 QFontDatabase 的令人困惑的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20894160/