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