我接管了一个在Ubuntu 16.04上运行Pyqt-5的项目。我对QML非常陌生。
我有main.py,它有一个运行qml的引擎。有一系列的qml文件,但为了简单起见,假设有一个使用component.qml的main.qml。在更新component.qml时,如果我运行main.py,则不会发生任何变化。但是,在运行main.py时,始终会反映对main.qml的任何更改。
对于为什么在运行应用程序时component.qml的更改没有反映出来,有什么建议吗?如何让component.qml中的更改得到反映的解决方案?
我已经尝试注释掉整个component.qml文件,没有任何更改反映出来。
发布于 2019-09-11 04:28:37
我有一个临时的解决办法,可以重建整个项目。
我认为QT是一个C++原生应用程序,如果有变化就必须重新编译。我认为PyQT并不总是触发QT重新编译。它类似于下面的bug。
https://bugreports.qt.io/browse/QTBUG-13334
如果有人有更好的解决方案,请让我知道。
发布于 2019-09-11 10:31:39
考虑到你的回答:我有一个临时的解决办法,通过重建整个项目。我假设您使用的是.qrc,这可以解释您问题中的行为。
与通过PyQt/Python编译生成产品的Qt/C++系统不同,它是一种解释型语言(部分由字节码编译),因此项目的构建方式不同。
在编译过程中,.qrc中指示的所有资源都被插入到PyQt的可执行文件中,您必须使用pyrcc工具从foo.qrc生成foo_rc.py:
pyrcc5 foo.qrc -o foo_rc.py总结:
https://stackoverflow.com/questions/57877579
复制相似问题