gpt4 book ai didi

c++ - 正确关闭 QMetaObject::Connection

转载 作者:行者123 更新时间:2023-11-30 02:16:26 29 4
gpt4 key购买 nike

我既不是 Qt 也不是 C++ 开发人员,但为了完成一项小任务,我必须注册一个 QMetaObject::Connection。

我的问题是,如何正确关闭连接

QMetaObject::Connection _sessionStarted = Q_NULLPTR; //or nullptr

给我错误:请求从“std::nullptr_t”转换为非标量类型“QMetaObject::Connection”

我还必须在某个地方检查我是否有连接

if (_sessionStarted == Q_NULLPTR)

哪个有效,但我该如何重置它?

我还尝试了 delete _sessionStarted 并检查了 docs

提前致谢!

最佳答案

QMetaObject::Connection 作为值类型,而不是指针。它基本上就像一个指向内部连接数据的智能指针。要创建“无效”连接,只需使用默认构造函数创建一个:

QMetaObject::Connection _sessionStarted;

检查有效性也是如此:

if(_sessionStarted)
//Connection is valid and active

要“删除”一个连接,即从信号中断开插槽,使用QObject::disconnect方法:

QObject::disconnect(_sessionStarted);

关于c++ - 正确关闭 QMetaObject::Connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54940732/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com