Пользовательский диалог (полученный из QDialog) не закрывался (Android) - PullRequest
0 голосов
/ 17 июня 2020

Хорошо, есть настраиваемый QDialog (класс, производный от QDialog), материал, заполненный из QML, он работает, он открывается просто отлично, он ведет себя так, как нужно, но затем, когда мы хотим убить его, используя

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

все анимация в диалоговом окне останавливается, все в нем замирает, но ... он не закрывается.

если вам интересно, как мы инициируем процесс уничтожения, в QML есть кнопка, которая отправляет сигнал обратно на C ++ -end, серверная часть удерживает указатель на диалог и пытается закрыть. Диалог открывается с помощью showFullScreen, поэтому ничего не блокирует (exe c заблокирует) Идеи?

1 Ответ

0 голосов
/ 18 июня 2020

После многих человеческих часов работы мы наткнулись на ИСПРАВЛЕНИЕ.

И вот. Итак, чтобы это сработало, нам нужно было

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

перед попыткой close ().

Теперь в документации нет ничего, что могло бы требовать чего-то вроде этого? Предположительно ОШИБКА, не так ли?

наоборот, например, последовательность:

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

приведет к исключению, когда QT скажет что-то о своей очереди обработки, которая предварительно занята, и мы попытаемся убить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...