为啥 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 已停止工作

为啥包含 300 张图像的应用程序停止工作?

为啥 QML Image 占用这么多内存?减慢申请

为啥我在尝试创建新的 qml 文件时得到 QmlCachedGenerateCode?

为啥当我单击提交按钮时,此 PyQt5 发票 GUI 应用程序的“Python 停止工作”? [复制]

为啥 React Native iOS 模拟器的重新加载快捷方式有时会停止工作?