Error handling 为什么GTK停止运行程序的其余部分? 我有一个C++程序,我使用了这个简单的GTK代码,在我的主()/Cux>函数的第一个地方,我的目标是我的应用程序在启动时显示图像并保持显示图像并保持程序的其余部分。p> GtkWidget* window; GtkWidget* image1; GtkWidget* image2; gtk_init (NULL,NULL); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); image1 = gtk_image_new_from_file("1.jpg"); image2 = gtk_image_new_from_file("2.jpg"); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL); gtk_container_add(GTK_CONTAINER (window), image1); gtk_widget_show_all(window); gtk_main(); THE REST OF PROGRAM THAT WONT EXECUTE!

Error handling 为什么GTK停止运行程序的其余部分? 我有一个C++程序,我使用了这个简单的GTK代码,在我的主()/Cux>函数的第一个地方,我的目标是我的应用程序在启动时显示图像并保持显示图像并保持程序的其余部分。p> GtkWidget* window; GtkWidget* image1; GtkWidget* image2; gtk_init (NULL,NULL); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); image1 = gtk_image_new_from_file("1.jpg"); image2 = gtk_image_new_from_file("2.jpg"); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL); gtk_container_add(GTK_CONTAINER (window), image1); gtk_widget_show_all(window); gtk_main(); THE REST OF PROGRAM THAT WONT EXECUTE!,error-handling,gtk,Error Handling,Gtk,但是当它打开一个窗口并显示图像时,它卡在那里,不执行其余的代码!为什么会发生这种情况?在执行gtk\u main之后,如果我可以这么说的话,您的代码将在该行中“阻塞”,直到gtk\u main\u退出它被调用/执行 这就是图形用户界面的本质。通常,您设置所有内容,调用主循环并等待用户交互 我建议你读一下侏儒的书 例如,如果您在gtk_main下执行任何printf,则在关闭GtkWindow后它将被打印 您的应用程序逻辑必须事先定义,然后通过用户交互、按下按钮和其他小部件,应用程序将执行“操作”

但是当它打开一个窗口并显示图像时,它卡在那里,不执行其余的代码!为什么会发生这种情况?

在执行
gtk\u main
之后,如果我可以这么说的话,您的代码将在该行中“阻塞”,直到
gtk\u main\u退出
它被调用/执行

这就是图形用户界面的本质。通常,您设置所有内容,调用主循环并等待用户交互

我建议你读一下侏儒的书

例如,如果您在
gtk_main
下执行任何
printf
,则在关闭GtkWindow后它将被打印

您的应用程序逻辑必须事先定义,然后通过用户交互、按下按钮和其他小部件,应用程序将执行“操作”

当您调用
gtk_main
时,主循环开始

主事件循环管理所有可用的事件源 GLib和GTK+应用程序。这些事件可以来自任意数量的 不同类型的源,如文件描述符(普通文件、, 管道或插座)和超时


您可以阅读更多信息。

由于我的程序不是图形程序,也没有用户界面(它是机器人的程序),而且我只想显示两张图像,说明我的机器人现在处于哪个状态,我应该使用GTK的替代方案吗?有什么简单的选择适合我吗?@JoséFonte查看我制作的gtk,告诉我你的想法。