C gtk&x2B;v3将控件返回到主控件以重新绘制

C gtk&x2B;v3将控件返回到主控件以重新绘制,c,gtk,gtk3,C,Gtk,Gtk3,我在函数中有一段代码叫做check\u pwd,它可以: if(g_strcmp0(s1,s2) != 0){ gtk_label_set_text(GTK_LABEL(a), "error"); return -1; } else{ gtk_label_set_text(GTK_LABEL(a), "ok"); //other things } 由于程序将控件返回到主功能,因此显示“错误”消息时,如何显示“确定”消息?当然,只需运行主循环: while(gtk_eve

我在函数中有一段代码叫做
check\u pwd
,它可以:

if(g_strcmp0(s1,s2) != 0){
   gtk_label_set_text(GTK_LABEL(a), "error");
   return -1;
}
else{
   gtk_label_set_text(GTK_LABEL(a), "ok");
   //other things
}

由于程序将控件返回到主功能,因此显示“错误”消息时,如何显示“确定”消息?

当然,只需运行主循环:

while(gtk_events_pending())
  gtk_main_iteration();
,建议采用以下方法:

检查是否有任何事件处于挂起状态

这可用于在执行一些时间密集型计算时更新UI和调用超时等


但这并不总是有效的,我读到重新运行main不是一个好的做法,因为你可能会有重新进入的问题@据我所知,这是使阻塞进程在UI中仍然具有响应性的推荐方法。这不会重新运行所有的
gtk_main()
,它只处理任何传入事件。再次,请参阅我链接到的文档。您没有提供足够的详细信息来给出有意义的答案。什么是“//其他东西”?你把主回路堵住了?您不应该在GTK+中阻塞主循环,而应该使用诸如IDLE和超时之类的源代码注入您自己的代码: