我正在尝试更改嵌入式Linux QT应用程序(QT5.5)的eglfs鼠标光标图形。 我有新的光标图集 PNG 和新的 JSON 描述符文件,但文档相当模糊:
"..通过将QT_QPA_EGLFS_CURSOR环境变量设置为 JSON 文件的名称,可以提供自定义游标图集。该文件也可以通过Qt的资源系统嵌入到应用程序中。
如果可能的话,我更愿意将所有内容都保留在资源系统中,但我无法弄清楚如何做到这一点.. 我是否需要包含 JSON 文件路径的特定 qrc 文件? 我假设还需要将 PNG 文件添加为资源,以便将其内置到应用程序中?
如果通过资源系统添加它是一个坏主意,那么设置QT_QPA_EGLFS_CURSOR环境变量的正确位置在哪里? 我目前正在通过"-platform eglfs"在命令行上指定平台;这是否可以,或者我需要在构建中将平台设置为 eglfs?
经过大量的试验、错误和挖掘,我找到了我在资源系统中寻找的解决方案。
创建一个名为"cursor.qrc"的新资源文件,其内容需要为两行:
path/to/your/custom-cursor-atlas.png
cursor.json
第一行(游标图集的路径)必须相对于资源目录。
然后,您需要将 JSON 文件(文档中描述的内容)放在资源目录的根目录中。 它必须称为"cursor.json",并且其图像位置行必须与新资源文件中的位置匹配,并且格式为:
"image": ":/path/to/your/custom-cursor-atlas.png",
然后,这将在资源中包含您的光标图集,Qt将在您的应用程序启动时找到它。
运行时解决方案示例:
export XDG_RUNTIME_DIR=~
export QT_QPA_EGLFS_CURSOR=~/cursor.json
在cursor.json
:
"image": "cursor.png",
将您的自定义cursor.png
图集放入您的家庭目录(~
),然后从那里运行Qt应用程序。