自定义对话框(源自QDialog)无法关闭(Android)。

问题描述 投票:0回答:1

好吧,有一个自定义的QDialog(从QDialog派生的类),从QML中填充的东西,它的工作原理是打开就好了,它的行为是所需的,但是当我们想用

mDialog-> close() or mDialog->hide()

对话框内的所有动画都停止了,里面的所有东西都冻结了,但是......它并没有关闭,如果你想知道我们是如何启动销毁过程的,在QML中有一个按钮,它向C++后端发出信号,后端持有指针并试图关闭对话框。

如果你想知道我们是如何启动销毁过程的,在QML中有一个按钮,它向C++后端发送了一个信号,后端将指针指向对话框并试图关闭。对话框是用showFullScreen打开的,所以没有什么阻挡(exec会阻挡)想法?

android c++ qt
1个回答
0
投票

经过许多人的工作时间,我们偶然发现了一个FIX。

看吧。所以,为了使这个方法有效,我们必须

dialog->setAttribute(Qt::WA_DeleteOnClose,true); 

在试图关闭()之前。

现在文档中没有任何提示说需要这样的东西?应该是个BUG吧?

反过来说,比如说一个.的序列会导致一个异常,QT会说它的处理队列是预处理的。

 dialog->close() /// hide()/ reject()
delete dialog;

会导致一个异常,QT会说它的处理队列被预先占用了,而我们会试图杀死它。

© www.soinside.com 2019 - 2024. All rights reserved.