Qml 上下文对象在应用程序关闭时为 null

Qml context object is null on app shutdown

这是我的代码。 每次退出应用程序时,我都会在控制台中收到这些错误。 属性在执行期间工作得很好,但我每次都会收到这个恼人的警告。

qrc:/search.qml:17: TypeError: Cannot read property 'isConnected' of null
qrc:/search.qml:18: TypeError: Cannot read property 'scanStatus' of null
qrc:/search.qml:19: TypeError: Cannot read property 'device' of null

#main.cpp

Utility u;
view->rootContext()->setContextProperty("utility", &u);
#search.qml

property bool connected : utility.isConnected
property bool scanRunning : utility.scanStatus
property var searchedDevice : utility.device

您必须验证 utility 不为空:

property bool connected : utility ? utility.isConnected : false
property bool scanRunning : utility ? utility.scanStatus : false
property var searchedDevice : utility ? utility.device : null

确保你的 Utility 对象在你的 QML 引擎之后没有被销毁:如果两者都是在堆栈上创建的,那么在引擎之前创建它。 使用此解决方案无需检查 utility 是否为 null。