我有一个带有QDialog类的对话框窗口。
我在头文件中用以下代码声明:

MyDialogClass myDialogWindow = nullptr;

并在运行时在某个地方创建窗口
myDialogWindow = new MyDialogClass(this);

由于其属性,它也是delf破坏:
this->setAttribute(Qt::WA_DeleteOnClose);

现在有人在没有连接信号的情况下自动删除后如何将myDialogWindow指针设置为nullptr吗?

提前致谢。

最佳答案

没有一些信号或事件逻辑,这是不可能的。该对象不拥有该指针,该指针指向该对象。

但是,您可以使用QPointer来为您包装信号处理和归零。

QPointer<MyDialogClass> myDialogWindow;
myDialogWindow = new MyDialogClass(this);
myDialogWindow->setAttribute(Qt::WA_DeleteOnClose);

// some time later, check dialog has not been closed
if( ! myDialogWindow.isNull() )
{
    // do something with dialog
}

关于c++ - 自删除后如何将对象设置为nullptr,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53116457/

10-09 15:39