如何在等待程序启动混乱/ GTK+时制作加载/介绍动画弹出窗口

How to make a loading/intro animation popup while waiting for program to start up clutter/GTK+

本文关键字:加载 动画 窗口 程序 在等待 启动 混乱 GTK+      更新时间:2023-10-16

我的程序需要几秒钟才能启动。 我正在为 GUI 使用混乱,我决定尝试弹出一些东西来指示程序正在启动。 我只想弹出并旋转一个徽标,然后在程序启动时消失。

所以在混乱中,我想我可以在主函数的第一部分中制作一个新的舞台(窗口)添加一个 actor,让 and actor 旋转。 窗口将立即弹出,但没有内容,但在启动杂乱主循环之前,内容不会显示。

所以我只是想知道如何使用杂乱或 GTK+ 来实现这一点。

如果你熟悉收割者4,录音程序,这个程序做一些类似于我想挖的东西。

您想要的称为初始屏幕。我不熟悉杂乱,但我找到了这个 GTK 初始屏幕示例。

但是,我认为您以错误的方式解决问题。初始屏幕是一个坏主意,因为您只会增加开销。您需要通过执行一些 CPU 和/或 IO 分析来提高启动性能。按需加载东西,而不是一次全部加载会有所帮助。

不幸的是,

我不熟悉杂乱。但是我很确定,如果没有在任何高级库中运行主循环,就很难渲染动画。我会尝试将导致延迟的代码放入单独的线程中,并在启动完成后通知主循环。

我使用的是这样的东西:

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 ();

尤其是待处理事件的最后一部分是关键