为啥 Python 在加载 QML 文件时停止工作?
Posted
技术标签:
【中文标题】为啥 Python 在加载 QML 文件时停止工作?【英文标题】:Why Python stop working when loads QML file?为什么 Python 在加载 QML 文件时停止工作? 【发布时间】:2018-04-20 05:35:08 【问题描述】:我用 QtCreator 创建了 QML 文件以避免错误
但是当我运行 python 文件时,它会显示一个空白窗口,然后立即显示“Python 停止工作”
文件.py
import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQml import QQmlApplicationEngine
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.load(QUrl('main.qml'))
engine.quit.connect(app.quit)
sys.exit(app.exec_())
main.qml
import QtQuick 2.10
import QtQuick.Window 2.2
Window
visible: true
width: 500
height: 400
它只是每次都崩溃,但它在使用 C++ 的 QtCreator 中运行正常
【问题讨论】:
你有什么版本的 PyQt5 和 Qt5?我已经用 PyQt5 5.10.1 运行它并且它工作正常。 此文件是否位于资源中? 我有相同的版本,不知道为什么会崩溃,我也在虚拟环境中尝试过,它崩溃了 【参考方案1】:我找到了解决办法,就是缓存..!
昨天我在这个位置找到了一个文件夹:
C:\Users\username\AppData\Local\cache\qtshadercache
问题是,如果你在 QtCreator 中创建一个应用程序并运行它,那么如果你尝试在 Python 中运行 QML,它将会崩溃,除非你删除 qtshadercache 文件夹中的文件,一旦文件被删除,你可以在 Python 中运行 QML,但你必须在 Python 中运行 QML 之前删除文件,前提是之前使用过 QtCreator
我希望这可以帮助某人
【讨论】:
以上是关于为啥 Python 在加载 QML 文件时停止工作?的主要内容,如果未能解决你的问题,请参考以下文章
为啥在打开PDF文件时,Windows提示Adobe Reader 已停止工作
为啥我在尝试创建新的 qml 文件时得到 QmlCachedGenerateCode?