我已将一个简单的 QML 组件(“qml/MyButton”)添加到我的“resource.qrc”文件中:
<RCC>
<qresource prefix="/">
<file>qml/MyButton.qml</file>
</qresource>
</RCC>
然后我将 QRC 编译为 python 模块:
pyside2-rcc -o 资源.py 资源.qrc
然后我在main.py中导入了resource.py:
import sys
import os
from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
import resource
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.load(os.path.join(os.path.dirname(__file__), "main.qml"))
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec_())
并在 main.qml 中调用 MyButton 组件:
import QtQuick 2.13
import QtQuick.Window 2.13
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
MyButton {
}
}
这是“qml/MyButton.qml”:
import QtQuick 2.0
import QtQuick.Controls 2.13
Button {
text: 'Click Me'
}
当我运行该程序时,出现“MyButton 不是类型”的错误。我想通过使用 python 生成的资源文件来使用 QML 组件。我不知道我做错了什么。
如果 .qml 位于主文件旁边,但在您的情况下 MyButton.qml 不在 main.qml 旁边,则自动导入,因此必须导入包:
import QtQuick 2.13
import QtQuick.Window 2.13
import "qrc:/qml"
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
MyButton {
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)