在gtk中,我试图制作一个游戏,在显示主菜单之前用大字母显示创建者3(3)秒。我知道没有任何错误/功能DisplayMainMenu
。出于某种原因,这使得它只是永远显示Asadefa屏幕。我该怎么办?
#define NOTHING
#define EMPTYSTRING "\0"
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 +使用事件循环来对事件做出反应,因此在调用sleep
之前你不会到达你的gtk_main_quit
调用,这已经太晚了。您应该使用g_timout_add_seconds
来添加一个事件源,在3秒后调用您的回调。在该回调中,您可以调用DisplayMainMenu
函数。