【问题标题】:Custom dialog (derived from QDialog) would not close (Android)自定义对话框(源自 QDialog)不会关闭(Android)
【发布时间】:2020-06-17 20:54:57
【问题描述】:

好吧,有一个自定义的 QDialog(从 QDialog 派生的类),从 QML 填充的东西,它可以正常打开它的行为,但当我们想使用它来杀死它时

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

对话框中的所有动画都停止了,其中的所有内容都冻结了,但是……它没有关闭。

如果您想知道我们如何启动销毁过程,QML 中有一个按钮,它向 C++ 后端发送信号,后端持有指向对话框的指针并尝试关闭。 该对话框使用 showFullScreen 打开,因此没有任何阻塞(exec 会阻塞) 想法?

【问题讨论】:

    标签: android c++ qt


    【解决方案1】:

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

    你瞧。因此,要使其正常工作,我们必须

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

    在尝试关闭()之前。

    现在文档中没有任何内容表明需要这样的东西?应该是BUG吧?

    反之,例如以下序列:

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

    会导致 QT 出现异常,说明它的处理队列被预先占用并且我们试图杀死它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多