在 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
函数。
在 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
函数。