Qml 上下文对象在应用程序关闭时为空
Posted
技术标签:
【中文标题】Qml 上下文对象在应用程序关闭时为空【英文标题】:Qml context object is null on app shutdown 【发布时间】:2021-08-10 08:52:10 【问题描述】:这是我的代码。 每次退出应用程序时,我都会在控制台中收到这些错误。 属性在执行期间工作得很好,但我每次都会收到这个烦人的警告。
qrc:/search.qml:17:TypeError:无法读取 null 的属性“isConnected” qrc:/search.qml:18: TypeError: 无法读取 null 的属性“scanStatus” 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
【问题讨论】:
【参考方案1】:确保您的 Utility
对象在 QML 引擎之后没有被破坏:如果两者都在堆栈上创建,则在引擎之前创建它。
使用此解决方案无需检查utility
是否为空。
【讨论】:
【参考方案2】:您必须验证utility
不为空:
property bool connected : utility ? utility.isConnected : false
property bool scanRunning : utility ? utility.scanStatus : false
property var searchedDevice : utility ? utility.device : null
【讨论】:
以上是关于Qml 上下文对象在应用程序关闭时为空的主要内容,如果未能解决你的问题,请参考以下文章
在parallelStream中获取安全上下文时为空主体[重复]
无法使用 QML 远程对象连接错误:“connectionToSource 为空”