在 gtk 中,如何切换到具有新按钮和其他小部件的新屏幕,但在同一个 window 上?

In gtk, how can I switch to a new screen with new buttons, and other widgets, but on the same window?

在 gtk 中,我正在尝试制作一款游戏,在显示主菜单之前以大字母显示创作者 3(三)秒。我知道 /w 函数 DisplayMainMenu 没有任何问题。出于某种原因,这使得它永远只显示 Asadefa 屏幕。我该如何解决?

#define NOTHING
#define EMPTYSTRING "[=11=]"

int main(int argc, char *argv[]) {
    gtk_init (&argc, &argv);
    Window = gtk_window_new(0);
    Box = gtk_hbox_new(00, 00);

    gtk_window_set_position(GTK_WINDOW(Window), 1);
    gtk_window_set_default_size(GTK_WINDOW(Window),800, 500);
    gtk_window_set_title(GTK_WINDOW(Window), "Fakecraft" );
    g_signal_connect(Window, "destroy", gtk_main_quit, NULL);
    gtk_container_set_border_width(GTK_CONTAINER(Window),16);

    char *TXT=("<span font=\"72\">ASADEFA </span>");
    GtkWidget (*Label) = gtk_label_new(EMPTYSTRING);
    gtk_container_add(GTK_CONTAINER(Window), Box);
    gtk_container_add(GTK_CONTAINER(Box), Label);
    gtk_label_set_markup(GTK_LABEL(Label), TXT);

    gtk_widget_show_all(Window);
    gtk_main( NOTHING NOTHING );

    sleep(3);

    DisplayMainMenu();
    return 0;
}

不要使用 sleep。 GTK+ 使用事件循环对事件做出反应,因此在调用 gtk_main_quit 之前您不会到达 sleep 调用,这已经太晚了。您应该使用 g_timout_add_seconds 来添加一个事件源,该事件源将在 3 秒后调用您的回调。在该回调中,您可以调用 DisplayMainMenu 函数。