gpt4 book ai didi

python - 从 QML 访问 qresource 文件中的图像

转载 作者:行者123 更新时间:2023-12-01 07:33:15 25 4
gpt4 key购买 nike

我正在尝试移植我的 C++ Qt 应用程序以使用 PySide2。在我的 QML 中,我有以下内容:

# test.qml
Image {
Layout.fillWidth: true
Layout.leftMargin: 5
Layout.rightMargin: 5
source: "qrc:/resources/images/logo.svg" # <-- Problematic line
fillMode: Image.PreserveAspectFit
asynchronous: true
}

我的 logo.svg 文件在我的 resources.qrc 文件中被引用,如下所示:

<RCC>
<qresource prefix="/">
<file>resources/images/logo.svg</file>
</qresource>
</RCC>

main.py 看起来像:

import sys

from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
from PySide2.QtCore import QUrl

import qml_rc

if __name__ == '__main__':
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.load("qrc:/qml/main.qml")

if not engine.rootObjects():
sys.exit(-1)

sys.exit(app.exec_())

qml.qrc 看起来像:

<RCC>
<qresource prefix="/">
<file>qml/main.qml</file>
<file>qml/test.qml</file>
</qresource>
</RCC>

我通过运行以下命令编译资源 QRC 文件:$ pipelinenv run pyside2-rcc -o src/ui/resources_rc.py src/ui/resources.qrc

然后,我通过运行以下命令编译 QML QRC 文件: pipenv run pyside2-rcc -o src/ui/qml_rc.py src/ui/qml.qrc

然后我使用以下命令运行我的程序:pipenv run python src/ui/main.py

将会弹出 UI,但控制台中会出现一些错误,特别是:

qrc:/qml/test.qml:25:9:QML 图像:无法打开:qrc:/resources/images/logo.svg

最佳答案

与导入 qml_rc 相同,您也必须处理 resources_rc:

import qml_rc
import resources_rc

注意:用作组件的文件名称必须大写,如 rule M16 所示。 ,我认为 test.qml 只是示例中使用的名称,在我的测试中我使用了 Test.qml。

关于python - 从 QML 访问 qresource 文件中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57118666/

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