如何在QML文件中使用QRC文件?
How to use QRC files in QML files?
我有一个我一直在开发的应用程序,最近我听说了 qml 和 qrc 文件系统,在此之前,我一直只使用 PySide6 和 qss。所以我一直在使用 qml 为这个应用程序制作一个 GUI,但是我已经 运行 撞墙了。我想给按钮一个图标,所以在我的 qrc 文件中我这样写:
<!DOCTYPE RCC>
<RCC version="1.0">
<qresource>
<file>menu_icons/menu.png</file>
</qresource>
</RCC>
并为我的按钮提供我写的图标:
Button {
id: "menu_toggle_button"
text: qsTr("Menu")
flat: true
width: menu.width
font.family: "Times New Roman"
font.pointSize: 20
icon.source: ":/menu_icons/menu.png"
}
但这似乎不起作用,当我 运行 代码时,我收到此消息:
file:///C:/Users/User/AppData/Local/Programs/Python/Python39/lib/site-packages/PySide6/qml/QtQuick/Controls/Material/Button.qml: QML IconImage: Cannot open: file:///C:/Users/User/AppData/Local/Programs/Python/Python39/lib/site-packages/PySide6/qml/QtQuick/Controls/Material/:/menu_icons/menu.png
这是我的 python 代码:
import sys
from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.quit.connect(app.quit)
engine.load('main.qml')
sys.exit(app.exec())
我曾尝试将 icon.source: ":/menu_icons/menu.png"
更改为 icon.source: "qrc:/menu_icons/menu.png"
,但这只是将错误消息更改为包含 qrc:/
而不是仅包含 :/
那我做错了什么?
您必须执行以下操作:
将 .qrc 转换为 .py:pyside6-rcc resources.qrc -o resources_rc.py
。
将import resources_rc
添加到main.py
使用完整路径:icon.source: "qrc:/menu_icons/menu.png"
.
我有一个我一直在开发的应用程序,最近我听说了 qml 和 qrc 文件系统,在此之前,我一直只使用 PySide6 和 qss。所以我一直在使用 qml 为这个应用程序制作一个 GUI,但是我已经 运行 撞墙了。我想给按钮一个图标,所以在我的 qrc 文件中我这样写:
<!DOCTYPE RCC>
<RCC version="1.0">
<qresource>
<file>menu_icons/menu.png</file>
</qresource>
</RCC>
并为我的按钮提供我写的图标:
Button {
id: "menu_toggle_button"
text: qsTr("Menu")
flat: true
width: menu.width
font.family: "Times New Roman"
font.pointSize: 20
icon.source: ":/menu_icons/menu.png"
}
但这似乎不起作用,当我 运行 代码时,我收到此消息:
file:///C:/Users/User/AppData/Local/Programs/Python/Python39/lib/site-packages/PySide6/qml/QtQuick/Controls/Material/Button.qml: QML IconImage: Cannot open: file:///C:/Users/User/AppData/Local/Programs/Python/Python39/lib/site-packages/PySide6/qml/QtQuick/Controls/Material/:/menu_icons/menu.png
这是我的 python 代码:
import sys
from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.quit.connect(app.quit)
engine.load('main.qml')
sys.exit(app.exec())
我曾尝试将 icon.source: ":/menu_icons/menu.png"
更改为 icon.source: "qrc:/menu_icons/menu.png"
,但这只是将错误消息更改为包含 qrc:/
而不是仅包含 :/
那我做错了什么?
您必须执行以下操作:
将 .qrc 转换为 .py:
pyside6-rcc resources.qrc -o resources_rc.py
。将
import resources_rc
添加到main.py使用完整路径:
icon.source: "qrc:/menu_icons/menu.png"
.