我不是Qt或C++开发人员,但对于一个小任务,我必须注册一个QMetaObject::Connection。
我的问题是,如何正确地关闭连接
QMetaObject::Connection _sessionStarted = Q_NULLPTR; //or nullptr给了我error: conversion from 'std::nullptr_t' to non-scalar type 'QMetaObject::Connection' requested
如果我真的有连接,我还必须在某个地方检查
if (_sessionStarted == Q_NULLPTR)这是可行的,但是我如何重置它呢?
我还尝试了delete _sessionStarted并检查了docs
提前感谢!
发布于 2019-03-01 16:37:26
QMetaObject::Connection作为值类型,而不是指针。它基本上就像一个指向内部连接数据的智能指针。要创建一个“无效”的连接,只需使用默认构造函数创建一个:
QMetaObject::Connection _sessionStarted;检查有效性也是如此:
if(_sessionStarted)
//Connection is valid and active要“删除”连接,即断开插槽与信号的连接,请使用QObject::disconnect方法:
QObject::disconnect(_sessionStarted);https://stackoverflow.com/questions/54940732
复制相似问题