я использую QSplashscreen
для отображения заставки в моем приложении. Обычно, когда я нажимаю на заставку, когда мое приложение загружается, заставка исчезает. Я видел, что mousepressevent
на Qsplashscreen
сделаны звонить hide
Функция виджета.
Но иногда, когда я нажимаю на заставку, фон заставки становится черным, и если я продолжаю нажимать, я получаю сообщение о том, что приложение не отвечает. Но через некоторое время приложение работает нормально.
Почему я иногда получаю черный фон при щелчке мышью на заставке? Я использую версию Qt 4.8.5
Причина, по которой вы получаете черный фон и «не отвечающие» сообщения, вероятно, в том, что вашему основному приложению требуется некоторое время для загрузки, то есть оно блокирует основной цикл событий.Большинство людей пытаются отключить все события, которые QSplashScreen
реализует, но это решение не работает. Поэтому самое простое решение — позвонить QApplication.processEvents
время от времени, пока вы создаете основное приложение.
Обратите внимание, что вы должны отделить свою бизнес-логику от логики представления именно из-за подобных вещей. Решать подобные проблемы будет намного проще.