Я вижу странный сбой в приложении 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 ++.