【发布时间】:2022-07-09 18:03:56
【问题描述】:
此问题与QML module not found when using KDE Kirigami 类似,但在这种情况下,在运行 pyhton 文件之前设置 QML_IMPORT_PATH 环境变量并不能解决问题。
我有这个简单的应用程序:
main.py
#!/usr/bin/python3
from PySide2.QtWidgets import *
from PySide2.QtGui import *
from PySide2.QtQml import QQmlApplicationEngine
from PySide2.QtCore import *
if __name__ == "__main__":
# Launch application
app = QApplication()
engine = QQmlApplicationEngine()
context = engine.rootContext()
engine.load("content/ui/main.qml")
if len(engine.rootObjects()) == 0:
quit()
win = engine.rootObjects()[0]
app.exec_()
main.qml
// Includes relevant modules used by the QML
import QtQuick 2.6
import QtQuick.Controls 2.0 as Controls
import QtQuick.Layouts 1.2
import org.kde.kirigami 2.13 as Kirigami
// Base element, provides basic features needed for all kirigami applications
Kirigami.ApplicationWindow {
// ID provides unique identifier to reference this element
id: root
// Window title
// i18nc is useful for adding context for translators, also lets strings be changed for different languages
title: i18nc("@title:window", "Hello World")
// Initial page to be loaded on app load
pageStack.initialPage: Kirigami.Page {
Controls.Label {
// Center label horizontally and vertically within parent element
anchors.centerIn: parent
text: i18n("Hello World!")
}
}
}
在运行它之前,我按照https://develop.kde.org/docs/use/kirigami/introduction-getting_started/ 中的说明安装了所有必需的依赖项
sudo apt install build-essential extra-cmake-modules cmake qtbase5-dev qtdeclarative5-dev libqt5svg5-dev qtquickcontrols2-5-dev qml-module-org-kde-kirigami2 kirigami2-dev libkf5i18n-dev gettext libkf5coreaddons-dev qml-module-qtquick-layouts
kirigami2 模块存在于路径中
/usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/kirigami.2
顺便说一句,执行我获得的Python文件时
QQmlApplicationEngine failed to load component
file:///home/danieleverducci/git/KDE/python/prova-kirigami/content/ui/main.qml:5:1: module "org.kde.kirigami" is not installed
设置 QML_IMPORT_PATH 环境变量并不能解决问题。 我忽略了什么?
【问题讨论】:
标签: python qt kde-plasma qqmlapplicationengine