2

QSplashscreenアプリケーションでスプラッシュスクリーンを表示するために使用しています。通常、アプリケーションのロード中にスプラッシュ画面をクリックすると、スプラッシュ画面が消えます。ウィジェットの関数を呼び出すように作られているmousepresseventことがわかりました。Qsplashscreenhide

しかし、スプラッシュスクリーンを繰り返しクリックすると、スプラッシュスクリーンの背景が黒くなり、クリックし続けると、アプリケーションが応答していないというメッセージが表示されることがあります。しかし、しばらくすると、アプリは正常に動作します。

スプラッシュスクリーンでマウスをクリックすると黒い背景が表示されることがあるのはなぜですか? 私が使用しているQtのバージョンは4.8.5です

4

2 に答える 2

0

背景が黒くなり、「応答していません」というメッセージが表示される理由は、おそらく、メイン アプリケーションの読み込みに時間がかかるためです。つまり、メイン イベント ループがブロックされているためです。ほとんどの人は、実装するすべてのイベントを無効にしようとしますQSplashScreenが、その解決策は無効です。動作しません。したがって、最も簡単な解決策はQApplication.processEvents、メイン アプリケーションを構築しているときに時々呼び出すことです。

このような理由から、ビジネス ロジックをプレゼンテーション ロジックから分離する必要があることに注意してください。このような問題を解決する方がはるかに簡単です。

于 2018-03-05T02:22:29.127 に答える