問題タブ [qsplashscreen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6007 参照

c++ - Qt スプラッシュ スクリーンが表示されない

私はこのコードを持っています。スプラッシュ スクリーンが動作していることを確認できるように、一種のタイマーを作成したので、スプラッシュ スクリーンが大きくなるため、スプラッシュ スクリーンを表示したいと考えています。問題は、スプラッシュ スクリーンが表示されないことですが、スプラッシュ スクリーンが表示されていない間にコードが実行され、スプラッシュ スクリーンを表示せずにメイン ウィンドウに直接送られます。これが私のコードです。

main.cpp

スプラッシュウィンドウ.cpp

スプラッシュウィンドウ.h

コマンドは、実行される前にスプラッシュ画面が表示されず、表示されないように実行されますが、修正する方法が見つかりません。

[編集] クロージャーに対応するコードの一部が間違って配置されていましたが、正しく配置しても機能しません。

0 投票する
2 に答える
909 参照

c++ - QSplashscreen を繰り返しクリックすると背景が黒くなる

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

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

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

0 投票する
1 に答える
887 参照

c++ - スレッドからスプラッシュ スクリーンを再描画する / アサーションを無効にする

問題

QTimerを使用して、プログレス バーを描画する派生を更新しQSplashScreen(ウィジェットではなくペイント コマンドを使用)、プログラムの実行開始時期を予測したいと考えています。

必然的に、これは のexec呼び出しの前に発生しQCoreApplicationます。これをX11 と Windowsの両方で (リリース モードでのみ) 動作させるには、2 番目のスレッドにタイマーを配置し、スプラッシュ スクリーンで進行状況を更新してウィジェットを再描画する関数を呼び出します。ただし、次のエラーが発生するため、これはデバッグ モードでは機能しません。

"ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread."

コードはリリース時にクラッシュせず、スプラッシュ画面にすぎないため、このアサーションについてはあまり心配していませんが、プログラムをデバッグで実行できるようにする必要があるため、次のいずれかを行いたいと思います a) コードをリファクタリングするアサーションをトリガーしないか、b) この特定のアサーションを無効にします。

試した:

  • update()の代わりに使用しrepaint()ます。finishこれはアサーションを引き起こしませんが、メインスレッドが共有ライブラリなどでロードするのにビジーであり、スプラッシュ画面で呼び出す準備ができるまでタイマーイベントが処理されないため、再描画もされません.
  • QTimerメインループから開始。上記と同じ結果です。
  • を使用しQT::QueuedConnectionます。同じ結果です。

主要

スプラッシュスクリーン

MyMainWindow

0 投票する
1 に答える
600 参照

c++ - 最初の show() の後に QSplashScreen にウィジェットを追加する方法は?

したがって、私の意図したプログラムの流れは次のとおりです。

  1. インスタンスを作成しshow() QSplashScreenます。
  2. i18n モジュールを含むシステムの他の部分を初期化する
  3. (翻訳された) 著作権表示 ( QLabel) をQSplashScreenインスタンスに追加します。

問題はhide()、スプラッシュ スクリーンを呼び出さない限り、 を呼び出しQApplication::processEvents、 を追加してからスプラッシュ スクリーンQLabelを再表示しないshow()と、明らかに大きなちらつきが発生し、QLabelレンダリングされないことです。

つまり、次のように書いただけでは通知が表示されません。

上記の前に

pSplashNoticeスプラッシュ スクリーンを非表示にせずにレンダリングするにはどうすればよいですか?

0 投票する
1 に答える
659 参照

c++ - QSplashscreen の位置を制御するには?

さまざまなシナリオで 3 つのスプラッシュ スクリーンを使用するアプリケーションがあります。問題は、これらの QSplashScreen のジオメトリまたは配置を設定できないように見えることです。実際、アプリケーションのサイズが変更されたり、画面上のアプリケーションの位置が変更されたりすると、スプラッシュがランダムな位置に制御不能に表示されます。どうすればそれを制御できますか?

0 投票する
1 に答える
1511 参照

c++ - Qtでロード画面をカスタマイズするには?

Qt でカスタマイズされたアニメーション化された読み込み画面を作成する必要がありますが、プログレス バーは必要ありません。

私はこのようなことをしたい:

ここに画像の説明を入力

どうすればそれができるか知っている人はいますか?

たとえば、QSplashScreen を使用できますか?

0 投票する
0 に答える
923 参照

qt - QSplashScreen をアプリケーションで動作させる

ドキュメントには、次のコードを提供する例があります。これは非常に単純なようです。

QApplication を使用してエンジンを作成し、次のように QML ファイルを開きます。

また、ドキュメントから、ファイルの URL を引数として渡さずに、例のように QMainWindow の方法を実際に理解することはできません (そのような関数はありません)。QMainWindow などから派生した C++ クラスを作成する必要がありますか? それとも、別の重要なポイントがありませんか? さらに、QSplashScreen を機能させるための他の提案についても満足しています。