1

私のプログラムは起動するのに数秒かかります。GUIにクラッターを使用しているので、プログラムが起動していることを示すために何かポップアップを表示することにしました。ロゴをポップアップして回転させ、プログラムの開始時に消えるようにしたかったのです。

そのため、メイン関数の最初のセクションで、新しいステージ(ウィンドウ)にアクターを追加し、アクターとアクターをスピンさせることができると思いました。ウィンドウはすぐにポップアップしますが、コンテンツはありませんが、クラッターメインループを起動するまでコンテンツは表示されません。

だから私は、クラッターやGTK+を使ってこれをどのように達成できるのだろうかと思っていました。

あなたがリーパー4、オーディオ録音プログラムに精通しているなら、このプログラムは私がやりたいことと同じようなことをします。

4

3 に答える 3

2

あなたが欲しいものはスプラッシュスクリーンと呼ばれています。雑然とはよくわかりませんが、このGTKスプラッシュ画面の例を見つけました。

しかし、私はあなたが問題を間違った方法で取っていると思います。スプラッシュ画面は、オーバーヘッドを追加するだけなので、お勧めできません。必要なのは、CPUやIOのプロファイリングを行うことで、起動パフォーマンスを向上させることです。オンデマンドでコンテンツをロードしますが、一度にすべてをロードすることは役に立ちません。

于 2012-04-12T08:16:00.727 に答える
1

残念ながら、私はクラッターに慣れていません。ただし、高レベルのライブラリでメインループを実行しないと、アニメーションをレンダリングするのは難しいと確信しています。遅延の原因となるコードを別のスレッドに入れて、起動が完了したらメインループに通知しようと思います。

于 2012-04-11T23:54:02.330 に答える
0

このようなものは私が使用するものです:

string splashfile = path_templ + "/splashimg.png";

GtkWidget *image=gtk_image_new_from_file(splashfile.c_str());
gtk_container_add(GTK_CONTAINER(SplashWindow), image);


gtk_widget_show_all(SplashWindow);

//Cycle through all iterations (refresh everything in the GUI)
while (gtk_events_pending()){
    gtk_main_iteration();
}
sleep(1);

(... rest of code ...)

gtk_main ();
gdk_threads_leave ();

特に、保留中のイベントの最後の部分が重要です

于 2013-09-01T10:50:30.737 に答える