Приложение Qt недетерминировано падает при вызове QMessageBox :: question () - PullRequest
0 голосов
/ 30 мая 2019

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

Сбой вызван доступомнарушается и возникает примерно в 30% случаев, когда выполняется вызов QMessageBox :: question ().Приложение вылетает только в режиме Release (никогда в Debug).

Код, вызывающий сбой, выглядит совершенно безобидным:

QMessageBox::question(
        this,
        QString("Deleting configuration"),
        QString("Are you sure you want to delete this configuration?"));

Не имеет значения, если диалог создается со статическимвызов функции (как выше) или явно.Другие стандартные диалоги, которые имеют значок (QMessageBox :: критический (), QMessageBox :: information () и т. Д.), Также вызывают этот сбой, но интересно, что диалоговое окно QMessageBox по умолчанию без каких-либо значков никогда не вылетает.Однако сбой появляется снова после добавления стандартного значка через setIcon():

QMessageBox dialog;
dialog.setText("Blah blah blah");
dialog.setIcon(QMessageBox::Question);
dialog.exec();

Может ли это быть как-то связано со стандартными значками в этих диалогах?Авария происходит только при первом отображении диалога;как только одно диалоговое окно отображается без сбоев, все последующие будут работать нормально.

Версия Qt - 5.12.2, и приложение компилируется с помощью компилятора Visual Studio 2017 x64 C ++.

...