Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: xintrea от Октябрь 28, 2016, 10:15



Название: Qt 5.6.0 - Появляется странное окно при выполнении app.exec()
Отправлено: xintrea от Октябрь 28, 2016, 10:15
Народ, столкнулся с таким багом.

Я веду разработку программы на Qt 5.4.2. В какой-то момент народ стал жаловаться, что при старте программы появляется загадочное окно с кнопкой Cancel. Выяснилось, что это окно стало появляться в Qt версии 5.6.0 и выше (есть и в 5.6.2).

Ниже ссылка на обсуждение. Там обсуждаются всякие конфиги, но суть в том, что проблема оказалась не в конфигах, а жестко связана с версией Qt. То есть, странное окно появляется в Qt 5.6.0 и выше, как минимум на Windows и Linux, на 32-х и 64-х битах:

https://github.com/xintrea/mytetra_dev/issues/19

Окно появляется в момент исполнения app.exec(). Отдебажиться не могу, потому что некуда в коде ставить брекпоинт.

Теперь сижу и думаю, как мне поймать появление этого окна, как понять кто его запускает и откуда оно появляется?

Код проекта: https://github.com/xintrea/mytetra_dev

Внешний вид окна в Windows показан на прикрепленной картинке.


Название: Re: Qt 5.6.0 - Появляется странное окно при выполнении app.exec()
Отправлено: xintrea от Октябрь 28, 2016, 14:33
В общем, оказалось, что это известный баг в Qt 5.5-5.6

https://www.linux.org.ru/forum/development/12976081

Самопроизвольная отрисовка диалога QProgressDialog после отрабатывания конструктора.


Название: Re: Qt 5.6.0 - Появляется странное окно при выполнении app.exec()
Отправлено: __Heaven__ от Октябрь 28, 2016, 17:56
Почему баг?
Тебе же там написали как устроен QProgressDialog.
https://www.linux.org.ru/forum/development/12976081?cid=12976435 (https://www.linux.org.ru/forum/development/12976081?cid=12976435)
Имхо, у тебя достаточно большая область видимости выделена для этого диалога. На мой взгляд, его лучше создавать непосредственно перед длительной операцией, прогресс которой хочется отображать.