gpt4 book ai didi

python - 获取 Font 时进程已完成,退出代码为 1

转载 作者:行者123 更新时间:2023-12-01 07:29:46 27 4
gpt4 key购买 nike

我有一些简单的代码,可以从我的资源目录中获取字体并将其分配给 QFont

我无法打印任何内容,没有任何变量。它只是不断返回退出代码 1。

抱歉,我真的不知道在这里到底要尝试什么。所以我没有显示我尝试过的内容。我确实测试了 FONT_PATH将转到正确的文件。此外,当从 QApplication 调用时,此函数似乎工作正常。

from PySide2 import QtGui, QtCore
import os

def get_font():

FONT_PATH = os.path.abspath(os.path.join(__file__, os.pardir, os.pardir, 'resources', 'ProximaNova-Regular.ttf'))
FONT_DB = QtGui.QFontDatabase()
FONT_ID = FONT_DB.addApplicationFont(FONT_PATH)
FAMILIES = FONT_DB.applicationFontFamilies(FONT_ID)
BOLD_FONT = QtGui.QFont('Proxima Nova')

return BOLD_FONT

print get_font()

我的期望:

<PySide2.QtGui.QFont( "Proxima Nova....") at 0x000....>

我得到了什么:

Process finished with exit code 1

最佳答案

如果您在 CMD/终端中运行脚本,您将收到以下错误消息:

QFontDatabase: Must construct a QGuiApplication before accessing QFontDatabase

该消息表明您在使用 QFontDatabase 之前必须拥有 QGuiApplication (或 QApplication),因此在您的情况下,如果它不存在,则必须创建它:

import os

from PySide2 import QtGui, QtCore


def get_font():
app = QtGui.QGuiApplication.instance()
if app is None:
app = QtGui.QGuiApplication([])
FONT_PATH = os.path.abspath(
os.path.join(
__file__, os.pardir, os.pardir, "resources", "ProximaNova-Regular.ttf"
)
)
FONT_DB = QtGui.QFontDatabase()
FONT_ID = FONT_DB.addApplicationFont(FONT_PATH)
FAMILIES = FONT_DB.applicationFontFamilies(FONT_ID)
BOLD_FONT = QtGui.QFont("Proxima Nova")
return BOLD_FONT


print(get_font())

关于python - 获取 Font 时进程已完成,退出代码为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57263320/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com